import json
#
print(json.dumps({0: [['ALU Limiter', 100, 'Measures the time during which ALU work is attempted to execute as a percentage of peak ALU performance.', 'ALULimiter', 100, 0], ['Texture Sample Limiter', 100, 'Measures the time during which texture samples are attempted to execute as a percentage of peak texture sample performance.', 'TPULimiter', 100, 0], ['Texture Filtering Limiter', 100, 'Measures the time during which texture filtering is attempted to execute as a percentage of peak texture filtering performance.', 'TextureFilteringLimiter', 100, 0], ['Texture Write Limiter', 100, 'Texture write limiter', 'PBELimiter', 100, 0], ['Buffer Read Limiter', 100, 'Measures the time during which buffer loads are attempted to execute as a percentage of peak buffer load performance.', 'BufferLoadLimiter', 100, 0], ['Buffer Write Limiter', 100, 'Measures the time during which buffer stores are attempted to execute as a percentage of peak buffer load performance.', 'BufferStoreLimiter', 100, 0], ['Threadgroup/Imageblock Load Limiter', 100, 'Measures the time during which threadgroup and imageblock threadgroup loads are attempted to execute as a percentage of peak threadgroup and imageblock threadgroup performance.', 'LocalLoadLimiter', 100, 0], ['Threadgroup/Imageblock Store Limiter', 100, 'Measures the time during which threadgroup and imageblock threadgroup stores are attempted to execute as a percentage of peak threadgroup and imageblock threadgroup performance.', 'LocalStoreLimiter', 100, 0], ['Fragment Input Interpolation Limiter', 100, 'Measures the time during which fragment shader input interpolation work is attempted to execute as a percentage of peak input interpolation performance.', 'FragmentInputInterpolationLimiter', 100, 0], ['GPU Last Level Cache Limiter', 100, 'Measures the time during which GPU’s last level cache is attempting to service read and write requests as a percentage of cache’s peak performance.', 'L2CacheLimiter', 100, 0], ['Vertex Occupancy', 100, 'Measures how many vertex shader simdgroups are concurrently running in the GPU relative to the GPU’s maximum number of concurrently running simdgroups.', 'VertexOccupancy', 100, 0], ['Fragment Occupancy', 100, 'Measures how many fragment shader simdgroups are concurrently running in the GPU relative to the GPU’s maximum number of concurrently running simdgroups.', 'FragmentOccupancy', 100, 0], ['Compute Occupancy', 100, 'Measures how many compute shader simdgroups are concurrently running in the GPU relative to the GPU’s maximum number of concurrently running simdgroups.', 'ComputeOccupancy', 100, 0], ['GPU Read Bandwidth', 9223372036, 'Measures how much memory, in gigabytes per second, are read by the GPU from a memory external to the GPU (potentially main memory).', 'GPUReadBandwidth', 1, 0], ['GPU Write Bandwidth', 9223372036, 'Measures how much memory, in gigabytes per second, are written by the GPU to a memory external to the GPU (potentially main memory).', 'GPUWriteBandwidth', 1, 0]], 3: {'gpu_gen': 12, 'num_gps': 2, 'num_cores': 4, 'num_frags': 4, 'num_mgpus': 1}, 2: '// input: num_cores - the number of FSTP cores.;\n// input: num_gps - the number of GTP GPs.;\n// we default initialize the inputs so that generate_derived_ctr_plists.py does not deduce that they are counters\nvar num_cores = 4;\nvar num_gps = 4;\nvar _d56cff6c89d6a3f5f8561cd89f1b36b2760c125d908074d984bc36678982991a = 768;\nvar _55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 = 32;\nvar TileWidth = 0;\nvar TileHeight = 0;\nvar _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6 = (1000.0 / 24.0);\n\n// name: GPU Time\n// description: GPU Time in nSec\n// type: Count\nfunction GPUTime()\n{\n    return MTLStat_nSec;\n}\n\n// name: Vertex Pipeline %\n// description: % of vertex processing\n// type: Percentage\nfunction VertexPipelinePercent()\n{\n    return (MTLStatTotalGPUCycles_vtx * 100) / (MTLStatTotalGPUCycles_frg + MTLStatTotalGPUCycles_vtx);    \n}\n\n// name: Fragment Pipeline %\n// description: % of fragment processing\n// type: Percentage\nfunction FragmentPipelinePercent()\n{\n    return (MTLStatTotalGPUCycles_frg * 100) / (MTLStatTotalGPUCycles_frg + MTLStatTotalGPUCycles_vtx);\n}\n\n// name: Shader Core Vertex Utilization %\n// description: % Shader Core Vertex Utilization\n// type: Percentage\nfunction ShaderCoreVertexUtilization()\n{\n    return _4bb4a72bfa974f38e0143eef87e93ae69847e8612684f014350fb4a8c0692050_norm_vtx / (_d56cff6c89d6a3f5f8561cd89f1b36b2760c125d908074d984bc36678982991a * num_cores);\n}\n\n// name: Shader Core Fragment Utilization %\n// description: % Shader Core Fragment Utilization\n// type: Percentage\nfunction ShaderCoreFragmentUtilization()\n{\n    return _367a60a3f4d39b45114c57a560ad1bad4f9f62798346ead3a98f790ad32537a6_norm_frg / (_d56cff6c89d6a3f5f8561cd89f1b36b2760c125d908074d984bc36678982991a * num_cores);\n}\n\n// name: Shader Core Compute Utilization %\n// description: % Shader Core Compute Utilization\n// type: Percentage\nfunction ShaderCoreComputeUtilization()\n{\n    return _6b3a9b25a65b692ad1039bcc4c052d5a85e40a9410946c0cdf5dc85d993e2131_norm / (_d56cff6c89d6a3f5f8561cd89f1b36b2760c125d908074d984bc36678982991a * num_cores);\n}\n\n// name: VS ALU Instructions\n// description: VS ALU Instructions\n// type: Count\nfunction VSALUInstructions()\n{ \n    return _55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 * _c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2_vtx * 4;\n}\n\n// name: VS ALU FP32 Instructions %\n// description: VS ALU FP32 Instructions\n// type: Percentage\nfunction VSALUF32Percent()\n{\n    return 100 * (_8e70441b8b0d9ded3ed900ec761f9f5960b106c5a304b44d62781621d5d1861a_vtx * 16) / VSALUInstructions();\n}\n\n// name: VS ALU FP16 Instructions %\n// description: VS ALU FP16 Instructions\n// type: Percentage\nfunction VSALUF16Percent()\n{\n    return 100 * (_82b2f93079459b00fb869444cfcf44604cc1a91d28078cd6bfd7bb6ea6ba423d_vtx * 16) / VSALUInstructions();\n}\n\n// name: VS ALU 32-bit Integer and Conditional Instructions %\n// description: VS ALU Select, Conditional, 32-bit Integer and Boolean Instructions\n// type: Percentage\nfunction VSALUInt32AndCondPercent()\n{\n    return 100 * (_23c51175314006fa4b6798dcb173a814349e2e5947244cfdba868be736d2bc03_vtx * 16) / VSALUInstructions();\n}\n\n// name: VS ALU Integer and Complex Instructions %\n// description: VS ALU Integer and Complex Instructions\n// type: Percentage\nfunction VSALUIntAndComplexPercent()\n{\n    return 100 * (_827783963eafa9275a53fc2b3ef13214ab90939fcc81572c4260e2eac9bd2acb_vtx * 16) / VSALUInstructions();\n}\n\n// name: FS ALU Instructions\n// description: FS ALU Instructions\n// type: Count\nfunction FSALUInstructions()\n{\n    return _55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 * _c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2_frg * 4;\n}\n\n// name: FS ALU FP32 Instructions %\n// description: FS ALU FP32 Instructions\n// type: Percentage\nfunction FSALUF32Percent()\n{\n    return 100 * (_8e70441b8b0d9ded3ed900ec761f9f5960b106c5a304b44d62781621d5d1861a_frg * 16) / FSALUInstructions();\n}\n\n// name: FS ALU FP16 Instructions %\n// description: FS ALU FP16 Instructions\n// type: Percentage\nfunction FSALUF16Percent()\n{\n    return 100 * (_82b2f93079459b00fb869444cfcf44604cc1a91d28078cd6bfd7bb6ea6ba423d_frg * 16) / FSALUInstructions();\n}\n\n// name: FS ALU 32-bit Integer and Conditional Instructions %\n// description: FS ALU Select, Conditional, 32-bit Integer and Boolean Instructions\n// type: Percentage\nfunction FSALUInt32AndCondPercent()\n{\n    return 100 * (_23c51175314006fa4b6798dcb173a814349e2e5947244cfdba868be736d2bc03_frg * 16) / FSALUInstructions();\n}\n\n// name: FS ALU Integer and Complex Instructions %\n// description: FS ALU Integer and Complex Instructions\n// type: Percentage\nfunction FSALUIntAndComplexPercent()\n{\n    return 100 * (_827783963eafa9275a53fc2b3ef13214ab90939fcc81572c4260e2eac9bd2acb_frg * 16) / FSALUInstructions();\n}\n\n// name: CS ALU Instructions\n// description: CS ALU Instructions\n// type: Count\nfunction CSALUInstructions()\n{\n    return _55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 * _c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2_cmp * 4;\n}\n\n// name: CS ALU FP32 Instructions %\n// description: CS ALU FP32 Instructions\n// type: Percentage\nfunction CSALUF32Percent()\n{\n    return 100 * (_8e70441b8b0d9ded3ed900ec761f9f5960b106c5a304b44d62781621d5d1861a_cmp * 16) / CSALUInstructions();\n}\n\n// name: CS ALU FP16 Instructions %\n// description: CS ALU FP16 Instructions\n// type: Percentage\nfunction CSALUF16Percent()\n{\n    return 100 * (_82b2f93079459b00fb869444cfcf44604cc1a91d28078cd6bfd7bb6ea6ba423d_cmp * 16) / CSALUInstructions();\n}\n\n// name: CS ALU 32-bit Integer and Conditional Instructions %\n// description: CS ALU Select, Conditional, 32-bit Integer and Boolean Instructions\n// type: Percentage\nfunction CSALUInt32AndCondPercent()\n{\n    return 100 * (_23c51175314006fa4b6798dcb173a814349e2e5947244cfdba868be736d2bc03_cmp * 16) / CSALUInstructions();\n}\n\n// name: CS ALU Integer and Complex Instructions %\n// description: CS ALU Integer and Complex Instructions\n// type: Percentage\nfunction CSALUIntAndComplexPercent()\n{\n    return 100 * (_827783963eafa9275a53fc2b3ef13214ab90939fcc81572c4260e2eac9bd2acb_cmp * 16) / CSALUInstructions();\n}\n\n// name: VS Invocations\n// description: Number of times vertex shader is invoked\n// type: Count\nfunction VSInvocation()\n{\n    return _da2d5f5fd43e7edda6d5635752a29f09d285cf47c2ecd0a1b83b1ba3eddcef55_vtx;\n}\n\n// name: FS Invocations\n// description: Number of times fragment shader is invoked\n// type: Count\nfunction PSInvocation()\n{\n    return _448897b2730c90c177c3e468d3780d048b4ef0c6feb09887550eb9e5e71373c0 * 32;\n}\n\n// name: CS Invocations\n// description: Number of times compute shader is invoked\n// type: Count\nfunction CSInvocation()\n{\n\treturn _e319ade855d6fde34a28ecc2a2266f86d6d99b5e413e08b4884629844476c571 + _83b4492da25346ffc6c1820a633ef533874dda8e2939056928ffd92384775e38 + _a3104b8f0a1ab0931761cf851c8ac5ce3212eff30deff24a1f9a5ef67453adca + _bd9f890bd3bdbe08af5851fb3dfa228a36a5e54b72c7d74d5985af75bafa6217;\n}\n\n// name: Vertex Rate\n// description: Number of vertices processed per nanosecond\n// type: Rate\nfunction VerticesPerNSec()\n{\n    return VSInvocation() / (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_vtx * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6);\n}\n\n// name: Primitive Rate\n// description: Number of primitives processed per nanosecond\n// type: Rate\nfunction PrimitivesPerNSec()\n{\n    return PrimitivesSubmitted() / (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_vtx * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6);\n}\n\n// name: Pixel Rate\n// description: Number of fragments processed per nanosecond\n// type: Rate\nfunction PixelsPerNSec()\n{\n    return PSInvocation() / (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_frg * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6);\n}\n\n// name: Pixel To Vertex Ratio\n// description: Number of pixels per vertex\n// type: Rate\nfunction PixelToVertexRatio()\n{\n    return PSInvocation() / VSInvocation();\n}\n\n// name: Pixel Per Triangle\n// description: Number of pixels per triangle\n// type: Rate\nfunction PixelPerTriangle()\n{\n    return PSInvocation() / PrimitivesSubmitted();\n}\n\n// name: Draw Calls\n// description: Number of draw calls\n// type: Count\nfunction DrawCalls()\n{\n    return _f6c3f9b835930ff834f081ab2dfaacbdfbe451f6f2100abcdecec1c3c7999e0b_vtx / num_gps;\n}\n\n// name: Vertex Count\n// description: Number of vertices being submitted to input assembly\n// type: Count\nfunction VerticesSubmitted()\n{\n    return _427543bc9ae51e5f3520629f8bbe54e3a18d14de616f0c418cf7190a55cd7d9c_vtx;\n}\n\n// name: Vertices Reused\n// description: Number of vertices being reused\n// type: Count\nfunction VerticesReused()\n{\n    return VerticesSubmitted() - VSInvocation();\n}\n\n// name: Vertices Reused %\n// description: % of vertices being reused\n// type: Percentage\nfunction VerticesReusedPercent()\n{\n    return (VerticesSubmitted() - VSInvocation()) * 100 / VerticesSubmitted();\n}\n\n// name: Primitives Submitted\n// description: Number of primitives gathered by input assembly\n// type: Count\nfunction PrimitivesSubmitted()\n{\n    return _0c33d520d54b5d5f84a71398d6ae71152426874088128bd3c18ad78df5f6d8b7_vtx;\n}\n\n// name: Primitives Rasterized\n// description: Number of primitives rasterized\n// type: Count\nfunction PrimitivesRasterized()\n{\n    return _2d3c257f33af88b8488658fb5b6a86f64cb02169b680e1250d3f37d373a4197f_vtx;\n}\n\n// name: Primitives Rendered %\n// description: % of primitives rasterized\n// type: Percentage\nfunction PrimitivesRasterizedPercent()\n{\n    return PrimitivesRasterized() * 100 / PrimitivesSubmitted();\n}\n\n// name: Primitives Clipped\n// description: Number of primitives being clipped\n// type: Count\nfunction ClippedPrimitives()\n{\n    return _29091329a1ff8f86d51ab9b84da709de18ba8aa1d94003a519a0663db7add4a1_vtx + _6169af48fcc4f2c5d036243de6acd153bd0308c644bd7e4afc67499ad1aef2c7_vtx;\n}\n\n// name: Primitives Clipped %\n// description: % of primitives clipped\n// type: Percentage\nfunction ClippedPrimitivesPercent()\n{\n    return ClippedPrimitives() * 100 / PrimitivesSubmitted();\n}\n\n// name: Back-Facing Cull Primitives\n// description: Number of primitives being culled due to being back-facing\n// type: Count\nfunction BackFaceCullPrims()\n{\n    return _b466c606c4b7e98fcde3adad24a292c946f1f1130670918262ebf9f660e0173c_vtx;\n}\n\n// name: Small Triangle Cull Primitives\n// description: Number of primitives being culled due to having small triangles\n// type: Count\nfunction SmallTriangleCullPrims()\n{\n    return _01038280d9d6c505432733b12946359b7c301c69b32369f4b921b6fa206c2211_vtx;\n}\n\n// name: Back-Facing Cull Primitives %\n// description: % of primitives being culled due to being back-facing\n// type: Percentage\nfunction BackFaceCullPrimsPercent()\n{\n    return BackFaceCullPrims() * 100 / PrimitivesSubmitted();\n}\n\n// name: Small Triangle Cull Primitives %\n// description: % of primitives being culled due small area triangles\n// type: Percentage\nfunction SmallTriangleCullPrimsPercent()\n{\n    return SmallTriangleCullPrims() * 100 / PrimitivesSubmitted();\n}\n\n// name: Guard Band Cull Primitives\n// description: Number of primitives being culled due to being outside guard band\n// type: Count\nfunction GuardBandCullPrims()\n{\n    return _4b1f5c87264cd5cd23bb5eb652d21194fb7f49f9b1d70433f180b31a7a22dcab_vtx + _4bb4ab3f3e64c565175f4fbe0f75df41b12c3bc2b4242b99cd4a330773d475d4_vtx + _d7b92925765e8d20627989863f1b950ec5d6dffbd815c4c100730b3a7e7801fd_vtx;\n}\n\n// name: Guard Band Cull Primitives %\n// description: % of primitives being culled due to being outside guard band\n// type: Percentage\nfunction GuardBandCullPrimsPercent()\n{\n    return GuardBandCullPrims() * 100 / PrimitivesSubmitted();\n}\n\n// name: Off-screen Cull Primitives\n// description: Number of primitives being culled due to being off-screen\n// type: Count\nfunction OffscreenCullPrims()\n{\n    return _0f9aab25f0863ace3de6f9832139250c806045a7ac0d6f8cf06c682c282005f1_vtx + _dbe3d527893309548e6eebdee711a622433c869e148727cf18e31ae63cf116d3_vtx + _3bd7a95222e8315bf62e84ba01a511e64bd7aa7487bed322a8ac96e4c4e628e1_vtx;\n}\n\n// name: Off-screen Cull Primitives %\n// description: % of primitives being culled due to being off-screen\n// type: Percentage\nfunction OffscreenCullPrimsPercent()\n{\n    return OffscreenCullPrims() * 100 / PrimitivesSubmitted();\n}\n\n// name: Fragments Rasterized\n// description: Number of fragments rasterized\n// type: Count\nfunction FragmentsRasterized()\n{\n    return Math.max(_24be79c8d8f70844505a88372d5027b6f8afd064ccbab97ac3ffe36dd5a0ef2b - _9177fce9b3d9e2a64a816854b3084588e4673c25a1c069c53b5909a77fb853eb, 0.0) * 32 + _9177fce9b3d9e2a64a816854b3084588e4673c25a1c069c53b5909a77fb853eb * TileWidth * TileHeight;\n}\n\n// name: Pre Z Pass Count\n// description: Pre Z Pass Count\n// type: Count\nfunction PreZPassCount()\n{\n    return Math.max(_24be79c8d8f70844505a88372d5027b6f8afd064ccbab97ac3ffe36dd5a0ef2b - _9177fce9b3d9e2a64a816854b3084588e4673c25a1c069c53b5909a77fb853eb, 0.0) * 32 + _9177fce9b3d9e2a64a816854b3084588e4673c25a1c069c53b5909a77fb853eb * TileWidth * TileHeight;\n}\n\n// name: Pre Z Fail Count\n// description: Pre Z Fail Count\n// type: Count\nfunction PreZFailCount()\n{\n    return Math.max(FragmentsRasterized() - PreZPassCount(), 0.0);\n}\n\n// name: Pre Z Fail %\n// description: % Pre Z Fail\n// type: Percentage\nfunction PreZFailCountPercent()\n{\n    return PreZFailCount() * 100 / FragmentsRasterized();\n}\n\n// name: Pre Z Pass %\n// description: % Pre Z Pass\n// type: Percentage\nfunction PreZPassCountPercent()\n{\n    return (PreZPassCount() * 100) / FragmentsRasterized();\n}\n\n// name: Pixels Per Tile\n// description: Pixels per tile\n// type: Count\nfunction PixelsPerTile()\n{\n    return TileWidth * TileHeight;\n}\n\n// name: Average Overdraw\n// description: Pixel Overdraw\n// type: Count\nfunction AverageOverdraw()\n{\n    if (TileWidth * TileHeight > 0)\n    {\n        return PSInvocation() / (_eda5bce70befa39e7c6029505c0269211092c220048a502fd8fa2fe30895465b * TileWidth * TileHeight);\n    }\n    return 0;\n}\n\n// name: VS Texture Cache Miss Rate\n// description: Percentage of time L1 Texture Cache access is a Miss\n// type: Percentage\nfunction VSTextureCacheMissRate()\n{\n    return _19109618d2fc2db66c23fe425a0a19ec06c81f05bb676c40aa572b76891428e6_vtx * 100 / (4.0 * _a8aac8549e9e4a65ca6d3143f42067a6b99241a9a056d0bb512624ee4a91ebc6_vtx + 3.0 * _c0d09f7c090cf4aba7f28554d5fbc55c24426ef3c548a77fa8def417b1823500_vtx + 2.0 * _5a879b789f129c90cada6c1f3173468a47dbc0b43eb8f7e0f8c9602136a0ae0d_vtx + _c5abc56251535ca5b6258367a41d21e518b437e511763fe0d6f0e84ec115ff41_vtx)\n}\n\n// name: FS Texture Cache Miss Rate\n// description: Percentage of time L1 Texture Cache access is a Miss\n// type: Percentage\nfunction FSTextureCacheMissRate()\n{\n    return _19109618d2fc2db66c23fe425a0a19ec06c81f05bb676c40aa572b76891428e6_frg  * 100 / (4.0 * _a8aac8549e9e4a65ca6d3143f42067a6b99241a9a056d0bb512624ee4a91ebc6_frg + 3.0 * _c0d09f7c090cf4aba7f28554d5fbc55c24426ef3c548a77fa8def417b1823500_frg + 2.0 * _5a879b789f129c90cada6c1f3173468a47dbc0b43eb8f7e0f8c9602136a0ae0d_frg + _c5abc56251535ca5b6258367a41d21e518b437e511763fe0d6f0e84ec115ff41_frg)\n}\n\n// name: VS USC L1 Cache Hits\n// description: VS L1 Request Hits\n// type: Count\nfunction VSBufferL1RequestHits()\n{\n  return _0b21821861563cc7963f603f7e5e23c70e5a880cfde9c726a3058746854ff882_vtx + _1d940c54d6f56bab841c80e54d16161b2b11c5cc2818b10a3b8e97cd88631cb8_vtx;\n}\n\n// name: VS USC L1 Cache Miss Rate\n// description: Percentage of time VS USC L1 Requests are misses\n// type: Percentage\nfunction VSBufferL1RequestMissRate()\n{\n  var uscL1Requests = _8cd74591f03ed3eb90e0c547b8bf21ae7eed4129053f40570cce56a39a690015_vtx + _3dfa6da703ded5b65a76ddf0aa3f7f28f19b4a624ef77347a925f55bf66a82f5_vtx;\n  return 100.0 * Math.max(uscL1Requests - VSBufferL1RequestHits(), 0.0) / Math.max(uscL1Requests, 1.0);\n}\n\n// name: FS USC L1 Cache Hits\n// description: FS L1 Request Hits\n// type: Count\nfunction FSBufferL1RequestHits()\n{\n  return _0b21821861563cc7963f603f7e5e23c70e5a880cfde9c726a3058746854ff882_frg + _1d940c54d6f56bab841c80e54d16161b2b11c5cc2818b10a3b8e97cd88631cb8_frg;\n}\n\n// name: FS USC L1 Cache Miss Rate\n// description: Percentage of time VS USC L1 Requests are misses\n// type: Percentage\nfunction FSBufferL1RequestMissRate()\n{\n  var uscL1Requests = _8cd74591f03ed3eb90e0c547b8bf21ae7eed4129053f40570cce56a39a690015_frg + _3dfa6da703ded5b65a76ddf0aa3f7f28f19b4a624ef77347a925f55bf66a82f5_frg;\n  return 100.0 * Math.max(uscL1Requests - FSBufferL1RequestHits(), 0.0) / Math.max(uscL1Requests, 1.0);\n}\n\n// name: USC L1 Cache Hits\n// description: L1 Request Hits\n// type: Count\nfunction BufferL1RequestHits()\n{\n  return _0b21821861563cc7963f603f7e5e23c70e5a880cfde9c726a3058746854ff882 + _1d940c54d6f56bab841c80e54d16161b2b11c5cc2818b10a3b8e97cd88631cb8;\n}\n\n// name: USC L1 Cache Miss Rate\n// description: Percentage of time USC L1 Requests are misses\n// type: Percentage\nfunction BufferL1RequestMissRate()\n{\n  var uscL1Requests = _8cd74591f03ed3eb90e0c547b8bf21ae7eed4129053f40570cce56a39a690015 + _3dfa6da703ded5b65a76ddf0aa3f7f28f19b4a624ef77347a925f55bf66a82f5;\n  return 100.0 * Math.max(uscL1Requests - BufferL1RequestHits(), 0.0) / Math.max(uscL1Requests, 1.0);\n}\n\n// name: VS Texture samples\n// description: VS Texture samples\n// type: Count\nfunction VSTextureSamples()\n{\n    return Math.max((_ae304fc8bce5708ffef30935687e442d6bea78f814055a5fe6e3380013d7e507_vtx * 64) - (_f46268d72ed52af703d1b490e193d71605d5c756930dfe9385a5433c9b4f264f_vtx * 4), 0);\n}\n\n// name: FS Texture samples\n// description: FS Texture samples\n// type: Count\nfunction FSTextureSamples()\n{\n   return Math.max((_ae304fc8bce5708ffef30935687e442d6bea78f814055a5fe6e3380013d7e507_frg * 64) - (_f46268d72ed52af703d1b490e193d71605d5c756930dfe9385a5433c9b4f264f_frg * 4), 0);\n}\n\n// name: CS Texture samples\n// description: CS Texture samples\n// type: Count\nfunction CSTextureSamples()\n{\n   return Math.max((_ae304fc8bce5708ffef30935687e442d6bea78f814055a5fe6e3380013d7e507_cmp * 64) - (_f46268d72ed52af703d1b490e193d71605d5c756930dfe9385a5433c9b4f264f_cmp * 4), 0);\n}\n\n// name: Texture samples per invocation\n// description: VS Texture samples per invocation\n// type: Rate\nfunction VSTextureSamplesPerInvocation()\n{\n    return VSTextureSamples() / VSInvocation()\n}\n\n// name: Texture samples per invocation\n// description: FS Texture samples per invocation\n// type: Rate\nfunction FSTextureSamplesPerInvocation()\n{\n    return FSTextureSamples() / PSInvocation()\n}\n\n// name: Texture samples per invocation\n// description: CS Texture samples per invocation\n// type: Rate\nfunction CSTextureSamplesPerInvocation()\n{\n    return CSTextureSamples() / CSInvocation()\n}\n\n// name: Average Anisotropic Ratio\n// description: Average Anisotropic Ratio\n// type: Rate\nfunction AverageAnisotropicRatio()\n{\n    var total = _a7e72038471917bb4125254ae57103538d43fd9d4a233b06a1f248ca3bfc11ac +\n                2 * _f76e110e78dbd810843354c733691fcfcd8a5624a46d34e887797178f903ab95 +\n                3 * _ce8d2278e7b086459bd4cccfe0b5c79b13ff287bf60e12cb62113d7478856b46 +\n                4 * _88a70ef450a839c73c44e1ebf268aa13bf92a5179d6ff3ab45ac0006fa8544cd +\n                6 * _851e2825825612ac09e7b26350dc1b5b05998c3aab3198f4a2921768a84dfbbb +\n                8 * _b48ed13a188e430f6a5bd26a74642ceabd518b8d290fe8322ebc00a7671bef9d +\n                10 * _3b22188697e2c64b322decfb2df85c2cd7a7f264312a00737b10231811737d35 +\n                12 * _14a170fde3d2efeda34d72f062b69852d6b927feb012e65ae602e9c41c3565ba +\n                14 * _57bf025a3b6e220efeee5fb9ecd97ad51c6adcccb96ca62426cc096e38eb9aa0 +\n                16 * _d86114b5bc1b6abf8638dd305669a55d8b394e5709b8e33e585d73c184d18943;\n        \n    return Math.round(total / _838e506beb7a1376c2242cd5738a6016661bdfccb78c105f3ce081c89735bc9d);\n}\n\n// name: Total Texture Accesses\n// description: Total Number of texture accesses read, sample, gather\n// type: Count\nfunction TextureAccesses()\n{\n    return _ae304fc8bce5708ffef30935687e442d6bea78f814055a5fe6e3380013d7e507 * 64;\n}\n\n// name: Total Texture Quads\n// description: Total Number of texture quads\n// type: Count\nfunction TextureQuads()\n{\n    return _0927651557827fd5468721c2ee04ff7924ebb553f9e0acc6b504a791aefdf935 * 64;\n}\n\n// name: Total Texture Quads Gathered\n// description: Total Number of texture quads gathered\n// type: Count\nfunction TextureQuadsGathered()\n{\n    return _f46268d72ed52af703d1b490e193d71605d5c756930dfe9385a5433c9b4f264f * 4;\n}\n\n// name: Total Texture Samples\n// description: Total Number of texture samples\n// type: Count\nfunction TextureSamples()\n{\n    return Math.max((_ae304fc8bce5708ffef30935687e442d6bea78f814055a5fe6e3380013d7e507 * 64) - (_f46268d72ed52af703d1b490e193d71605d5c756930dfe9385a5433c9b4f264f * 4), 0);\n}\n\n// name: Anisotropic Samples\n// description: Number of texture samples with anisotropic filtering\n// type: Count\nfunction AnisotropicSamples()\n{\n    return _838e506beb7a1376c2242cd5738a6016661bdfccb78c105f3ce081c89735bc9d * 4;\n}\n\n// name: Anisotropic Samples %\n// description: % of texture samples with anisotropic filtering\n// type: Percentage\nfunction AnisotropicSamplesPercent()\n{\n    return (_838e506beb7a1376c2242cd5738a6016661bdfccb78c105f3ce081c89735bc9d * 100) / TextureQuads();\n}\n\n// name: Mipmap Linear Samples\n// description: Number of texture samples with linear mipmap filter\n// type: Count\nfunction MipmapLinearSamples()\n{\n    return _b7afe579643b48d1495eb528fa5a78db4c0a065f75636f39f24f9cf4578912cf * 4;\n}\n\n// name: Mipmap Linear Samples %\n// description: % of texture samples with linear mipmap filter\n// type: Percentage\nfunction MipmapLinearSamplesPercent()\n{\n    return (_b7afe579643b48d1495eb528fa5a78db4c0a065f75636f39f24f9cf4578912cf * 100) / TextureQuads();\n}\n\n// name: Mipmap Nearest Samples\n// description: Number of texture samples with nearest mipmap filter\n// type: Count\nfunction MipmapNearestSamples()\n{\n    return _443fdcc2095b4dca2f7e327fb6af5914523d670164b66d05316044de82474149 * 4;\n}\n\n// name: Mipmap Nearest Samples %\n// description: % of texture samples with nearest mipmap filter\n// type: Percentage\nfunction MipmapNearestSamplesPercent()\n{\n    return (_443fdcc2095b4dca2f7e327fb6af5914523d670164b66d05316044de82474149 * 100) / TextureQuads();\n}\n\n// name: Compressed Texture Samples\n// description: Number of compressed texture samples\n// type: Count\nfunction CompressedSamples()\n{\n    var CompressedSamples = _c9c95eb1a34eb7174e53a1b1edaf53792e68f9976bc8eb07fce8ad493bddc08e +\n                            _3de788cd53ebf174aa407ea16ef4db42a9c5b26ec73c4d2f90713dd56d65f333 +\n                            _fa01d5329f611805a99f4699e796d485f8f993df07816be0c8b15ac5e39951ea +\n                            _0b4c966855c4b581f07ec85a1491cb234d31a838aaf82adc9427d3b2497bd31c +\n                            _3bdd2971a0eab63c90d85f332aaf54f1f94663a4057f3c5d7619e2442d091a31 +\n                            _4e088158f4d8adbbe88420686b1cb8700f71b4a42277c8b25c3f00bb97008361 +\n                            _0427b329a9bf6f3b297e589bdebcd2e8a222101e677f95061e2fbe6fbe4ffa6f +\n                            _4abe7d6426efbcb52bcc749d398c408464e07bccc54a687a42b794009dee6158 +                            \n                            _71b154ef77c3d0492cf30c6594c523c8abe3285ee44c7f73c15ab86fabc4f05e +\n                            _e2eebf0eaa57027e8dfa6003d4f8f90fb00c3666b62e391d060b8730c80b020f +\n                            _46ed86682cc445fce72ee444d0a285905c9acb73971662dc88cf1fbc7f637928 +\n                            _ccbd9b2a02319dfae2b510714bf280d5869ae5b980a89f854023778e59e8fb8b +\n                            _0170b0014687cc7dc054a9619094bc011a05d098930b07f0b7dab0bcabae9406 +\n                            _282cfcc4b531f88df1917e61edd71b551c4de0f3cc74785a95cdeaf421efefe2;\n\n    return CompressedSamples * 4;\n}\n\n// name: Compressed Samples %\n// description: Percentage of samples to compressed textures\n// type: Percentage\nfunction CompressedSamplesPercent()\n{\n    return Math.min((CompressedSamples() * 100.0) / Math.max(TextureQuads() * 4, 1.0), 100.0);\n}\n\n// name: Lossless Compressed Texture Samples\n// description: Number of lossless compressed texture samples\n// type: Count\nfunction LosslessCompressedSamples()\n{\n    return _7cdc2c85e61923202c5936567bb447b8929b55e3fadd72277ff0796a99a7bdb4 * 4;\n}\n\n// name: Lossless Compressed Samples %\n// description: Percentage of samples to compressed textures\n// type: Percentage\nfunction LosslessCompressedSamplesPercent()\n{\n    return Math.min((LosslessCompressedSamples() * 100.0) / Math.max(TextureQuads() * 4, 1.0), 100.0);\n}\n\n// name: Uncompressed Texture Samples\n// description: Number of uncompressed texture samples\n// type: Count\nfunction UncompressedSamples()\n{\n    return Math.max(TextureQuads()*4 - (CompressedSamples() + LosslessCompressedSamples()), 0);\n}\n\n// name: Uncompressed Samples %\n// description: Percentage of samples to compressed textures\n// type: Percentage\nfunction UnCompressedSamplesPercent()\n{\n    return Math.min(100.0 * UncompressedSamples() / Math.max(TextureQuads()*4, 1.0), 100.0);\n}\n\n// name: Pixels Written to Memory Unbiased\n// description: Number of pixels unbiased written to memory\n// type: Count\nfunction PixelsUnbiasedWrittenToMemory()\n{\n    return _f406f88bdd312ec0455d0943c388de77e53b86cf0109624b028c3aa596ec3bf4 * 4;\n}    \n\n// name: Texture Pixels Written to Memory by Pixel Write Instructions\n// description: Number of texture pixels written to memory\n// type: Count\nfunction TexturePixelsWrittenToMemory()\n{\n    return _03e06857325a0de8f5a4a0e55c75600fdbc3320b641d3263a95784fa16e2aaa1 * 4;\n}\n\n// name: Pixels Written to Memory\n// description: Number of pixels written to memory\n// type: Count\nfunction PixelsWrittenToMemory()\n{\n    return Math.max(PixelsUnbiasedWrittenToMemory(), TexturePixelsWrittenToMemory());\n}\n\n// name: Attachment Pixels Written to Memory\n// description: Number of pixels written to memory\n// type: Count\nfunction AttachmentPixelsWrittenToMemory()\n{\n    return Math.max(PixelsUnbiasedWrittenToMemory() - TexturePixelsWrittenToMemory(), 0.0);\n}\n\n// name: Compressed Pixels Written to Memory\n// description: Number of compressed pixels written to memory\n// type: Count\nfunction CompressedPixelsWrittenToMemory()\n{\n    return _d2a9ad5555cf691ed8c64858ebd4a530a83d601bb356314c24c2f03df645597c * 4;\n}\n\n// name: Percentage of Texture Pixels Written to Memory by Pixel Write Instructions\n// description: Number of texture pixels written to memory\n// type: Percentage\nfunction TexturePixelsWrittenToMemoryPercent()\n{\n    return 100.0 * TexturePixelsWrittenToMemory() / Math.max(PixelsWrittenToMemory(), 1.0);\n}\n\n// name: Percentage of Attachment Pixels Written to Memory\n// description: Percentage of number of attachment pixels written to memory\n// type: Percentage\nfunction AttachmentPixelsWrittenToMemoryPercent()\n{\n    return 100.0 * AttachmentPixelsWrittenToMemory() / Math.max(PixelsWrittenToMemory(), 1.0);\n}\n\n// name: Percentage of Compressed Pixels Written to Memory\n// description: Percentage of number of compressed pixels written to memory\n// type: Percentage\nfunction CompressedPixelsWrittenToMemoryPercent()\n{\n    return 100.0 * CompressedPixelsWrittenToMemory() / Math.max(PixelsWrittenToMemory(), 1.0);\n}\n\n// name: Number of 2xMSAA Resolved Pixels\n// description: Number of 2xMSAA resolved pixels\n// type: Count\nfunction MSAA2XResolvedPixels()\n{\n    return _66eafb3ddb63687a1eef3817f25c70385aeb51f41d76b5cbdc5aa69a556bb76c * 4;\n}\n\n// name: Number of 4xMSAA Resolved Pixels\n// description: Number of 4xMSAA resolved pixels\n// type: Count\nfunction MSAA4XResolvedPixels()\n{\n    return _788f9865b6b4897849bedfd577403fe30b882c1c6c2afcdbf2a9f8a0d41e741b * 4;\n}\n\n// name: Number of 2xMSAA Resolved Pixels\n// description: Number of 2xMSAA resolved pixels\n// type: Percentage\nfunction MSAA2XResolvedPixelsPercent()\n{\n    return 100.0 * (MSAA2XResolvedPixels() / Math.max(PixelsWrittenToMemory(), 1.0));\n}\n\n// name: Number of 4xMSAA Resolved Pixels\n// description: Number of 4xMSAA resolved pixels\n// type: Percentage\nfunction MSAA4XResolvedPixelsPercent()\n{\n    return 100.0 * (MSAA4XResolvedPixels() / Math.max(PixelsWrittenToMemory(), 1.0));\n}\n\n\n// name: Number of Total Resolved Pixels\n// description: Number of total resolved pixels\n// type: Count\nfunction TotalResolvedPixels()\n{\n    return (_92e4033c73762edd1ce117ae25bceecf0ae126712bf861ca430c8049f845b9ff + _37b62c762d1c23168d0c25f1bc6033c6ee17922f5e31eab8d0cd946eb40ff5f3 + _984b0993354750161fe0018879ef125f6e3d98a5cbd800796dba5fb611df1651 + _6bb7d08e271a527bc1e586380563ec0de8de7e58c81e7b417ac1ecb39790c288) * 4.0;\n}\n\n// name: Average Unique Colors Per Resolved Pixels\n// description: Average unique colors per resolved pixels\n// type: Rate\nfunction AverageUniqueColorsPerResolvedPixels()\n{    \n    return 4.0 * (_92e4033c73762edd1ce117ae25bceecf0ae126712bf861ca430c8049f845b9ff + 2.0*_37b62c762d1c23168d0c25f1bc6033c6ee17922f5e31eab8d0cd946eb40ff5f3 + 3.0*_984b0993354750161fe0018879ef125f6e3d98a5cbd800796dba5fb611df1651 + 4.0*_6bb7d08e271a527bc1e586380563ec0de8de7e58c81e7b417ac1ecb39790c288) / Math.max(TotalResolvedPixels(), 1.0);\n}\n\n// name: Texture Sample Limiter\n// description: Measures the time during which texture samples are attempted to execute as a percentage of peak texture sample performance.\n// type: Percentage\nfunction TPULimiter()\n{    \n    return _7646a8523871192073a29fb3af219f4dbddae3339e969e0da8ef8d84a3d46ec5_norm / (2.0 * num_cores);\n}   \n\n// name: Vertex Texture Sample Limiter\n// description: Vertex texture sample limiter\n// type: Percentage\nfunction VertexTPULimiter()\n{    \n    return _7646a8523871192073a29fb3af219f4dbddae3339e969e0da8ef8d84a3d46ec5_norm_vtx / (2.0 * num_cores);\n}   \n\n// name: Fragment Texture Sample Limiter\n// description: Fragment texture sample limiter\n// type: Percentage\nfunction FragmentTPULimiter()\n{\n    return _7646a8523871192073a29fb3af219f4dbddae3339e969e0da8ef8d84a3d46ec5_norm_frg / (2.0 * num_cores);\n}   \n\n// name: ALU Limiter\n// description: Measures the time during which ALU work is attempted to execute as a percentage of peak ALU performance.\n// type: Percentage\nfunction ALULimiter()\n{    \n    return (_c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2_norm + _d201fed97c60848e3714502b203a0ad4e2820937c140dbf6a9db1cb31be194dd_norm) / num_cores;\n}\n\n// name: Vertex ALU Limiter\n// description: Vertex ALU Limiter\n// type: Percentage\nfunction VertexALULimiter()\n{\n    return (_c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2_norm_vtx + _d201fed97c60848e3714502b203a0ad4e2820937c140dbf6a9db1cb31be194dd_norm_vtx) / num_cores;\n}\n\n// name: Fragment ALU Limiter\n// description: Fragment ALU Limiter\n// type: Percentage\nfunction FragmentALULimiter()\n{\n    return (_c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2_norm_frg + _d201fed97c60848e3714502b203a0ad4e2820937c140dbf6a9db1cb31be194dd_norm_frg) / num_cores;\n}\n\n// name: Texture Write Limiter\n// description: Texture write limiter\n// type: Percentage\nfunction PBELimiter()\n{\n    return (_bb9dbea90df77e54beebae872b35923d727fd2a59d6905410b32092d6d561402_norm + _63b42fb9d33e39b5f913060438c759d841275b394631cb7a8145853e9a04ef67_norm) / num_cores;\n}\n\n// name: VS Texture Write Limiter\n// description: VS Texture write limiter\n// type: Percentage\nfunction VertexPBELimiter()\n{\n    return (_bb9dbea90df77e54beebae872b35923d727fd2a59d6905410b32092d6d561402_norm_vtx + _63b42fb9d33e39b5f913060438c759d841275b394631cb7a8145853e9a04ef67_norm_vtx) / num_cores;\n}\n\n// name: FS Texture Write Limiter\n// description: FS Texture write limiter\n// type: Percentage\nfunction FragmentPBELimiter()\n{\n    return (_bb9dbea90df77e54beebae872b35923d727fd2a59d6905410b32092d6d561402_norm_frg + _63b42fb9d33e39b5f913060438c759d841275b394631cb7a8145853e9a04ef67_norm_frg) / num_cores;\n}\n\n// name: Sample Limiter\n// description: % Sample Limiter\n// type: Percentage\nfunction SampleLimiter()\n{\n    return (_450c6190714cff4c691e85516367dccd4a988a331215ec899dc89670b4d6fbfa_norm + _bdd31d464f4dbd8a42028ce4a2b5885958d98a8cfbf4f34e09d601dd6425efa9_norm) * 0.5 / num_cores;\n}\n\n// name: VS Sample Limiter\n// description: % VS Sample Limiter\n// type: Percentage\nfunction VertexSampleLimiter()\n{\n    return (_450c6190714cff4c691e85516367dccd4a988a331215ec899dc89670b4d6fbfa_norm_vtx + _bdd31d464f4dbd8a42028ce4a2b5885958d98a8cfbf4f34e09d601dd6425efa9_norm_vtx) * 0.5 / num_cores;\n}\n\n// name: FS Sample Limiter\n// description: % FS Sample Limiter\n// type: Percentage\nfunction FragmentSampleLimiter()\n{\n    return (_450c6190714cff4c691e85516367dccd4a988a331215ec899dc89670b4d6fbfa_norm_frg + _bdd31d464f4dbd8a42028ce4a2b5885958d98a8cfbf4f34e09d601dd6425efa9_norm_frg) * 0.5 / num_cores;\n}\n\n// name: Threadgroup/Imageblock Load Limiter\n// description: Measures the time during which threadgroup and imageblock threadgroup loads are attempted to execute as a percentage of peak threadgroup and imageblock threadgroup performance.\n// type: Percentage\nfunction LocalLoadLimiter()\n{\n    return _7297c7ee63bc3f774b2e5f2e665cd87efcbf40dd3e6b66a9c08f8ebfdae4019e_norm / (4.0 * num_cores);\n}\n\n// name: VS Threadgroup/Imageblock Load Limiter\n// description: VS Threadgroup/Imageblock load limiter\n// type: Percentage\nfunction VertexLocalLoadLimiter()\n{\n    return _7297c7ee63bc3f774b2e5f2e665cd87efcbf40dd3e6b66a9c08f8ebfdae4019e_norm_vtx / (4.0 * num_cores);\n}\n\n// name: FS Threadgroup/Imageblock Load Limiter\n// description: FS Threadgroup/Imageblock load limiter\n// type: Percentage\nfunction FragmentLocalLoadLimiter()\n{\n    return _7297c7ee63bc3f774b2e5f2e665cd87efcbf40dd3e6b66a9c08f8ebfdae4019e_norm_frg / (4.0 * num_cores);\n}\n\n// name: Threadgroup/Imageblock Store Limiter\n// description: Measures the time during which threadgroup and imageblock threadgroup stores are attempted to execute as a percentage of peak threadgroup and imageblock threadgroup performance.\n// type: Percentage\nfunction LocalStoreLimiter()\n{\n    return _192193e6c7ce23b86614fecbd983be5c3d4ea08d47c42ee19db85a736c0cbf7e_norm / (4.0 * num_cores);\n}\n\n// name: VS Threadgroup/Imageblock Store Limiter\n// description: VS Threadgroup/Imageblock store limiter\n// type: Percentage\nfunction VertexLocalStoreLimiter()\n{\n    return _192193e6c7ce23b86614fecbd983be5c3d4ea08d47c42ee19db85a736c0cbf7e_norm_vtx / (4.0 * num_cores);\n}\n\n// name: FS Threadgroup/Imageblock Store Limiter\n// description: FS Threadgroup/Imageblock store limiter\n// type: Percentage\nfunction FragmentLocalStoreLimiter()\n{\n    return _192193e6c7ce23b86614fecbd983be5c3d4ea08d47c42ee19db85a736c0cbf7e_norm_frg / (4.0 * num_cores);\n}\n\n// name: Texture Cache Read Miss Rate\n// description: Percentage of time L1 Texture Cache read access is a Miss\n// type: Percentage\nfunction TextureCacheMissRate()\n{\n    return _19109618d2fc2db66c23fe425a0a19ec06c81f05bb676c40aa572b76891428e6  * 100 / (4.0 * _a8aac8549e9e4a65ca6d3143f42067a6b99241a9a056d0bb512624ee4a91ebc6 + 3.0 * _c0d09f7c090cf4aba7f28554d5fbc55c24426ef3c548a77fa8def417b1823500 + 2.0 * _5a879b789f129c90cada6c1f3173468a47dbc0b43eb8f7e0f8c9602136a0ae0d + _c5abc56251535ca5b6258367a41d21e518b437e511763fe0d6f0e84ec115ff41);\n}\n\n// name: Texture Cache Write Miss Rate in Vertex Shader\n// description: Percentage of time L1 Texture Cache write access is a Miss for Vertex Shader\n// type: Percentage\nfunction VSTextureCacheWriteMissRate()\n{\n    return _f430991e42f778aeda210861eca9b8cef241898007339644eff469d83e5a6c9d_vtx * 100.0 / (_f430991e42f778aeda210861eca9b8cef241898007339644eff469d83e5a6c9d_vtx + _3459b3e3f2f8a441719d05aae2161786eded99c72d7215bb6797f836d46a3426_vtx); \n}\n\n// name: Texture Cache Write Miss Rate in Fragment Shader\n// description: Percentage of time L1 Texture Cache write access is a Miss for Fragment Shader\n// type: Percentage\nfunction FSTextureCacheWriteMissRate()\n{\n    return _f430991e42f778aeda210861eca9b8cef241898007339644eff469d83e5a6c9d_frg * 100.0 / (_f430991e42f778aeda210861eca9b8cef241898007339644eff469d83e5a6c9d_frg + _3459b3e3f2f8a441719d05aae2161786eded99c72d7215bb6797f836d46a3426_frg); \n}\n\n// name: Texture Cache Write Miss Rate\n// description: Percentage of time L1 Texture Cache write access is a Miss\n// type: Percentage\nfunction TextureCacheWriteMissRate()\n{\n    return _f430991e42f778aeda210861eca9b8cef241898007339644eff469d83e5a6c9d * 100.0 / (_f430991e42f778aeda210861eca9b8cef241898007339644eff469d83e5a6c9d + _3459b3e3f2f8a441719d05aae2161786eded99c72d7215bb6797f836d46a3426); \n}\n\n// name: VS Bytes Read From Main Memory\n// description: Total bytes read from main memory in Vertex Shader\n// type: Value\nfunction VSBytesReadFromMainMemory()\n{\n    return 64.0 * (_e7982344eb9c10ce1e1e9e179c01bb8a55934656fd5d499f956d6e35e42f1f10_vtx + _aac2d2ece8ff1acbf2ab0f821c8f1e4e2dbb2ca4c3a6918e2dc458dfab8ee05c_vtx);\n}\n\n// name: FS Bytes Read From Main Memory\n// description: Total bytes read from main memory in Fragment Shader\n// type: Value\nfunction FSBytesReadFromMainMemory()\n{\n    return 64.0 * (_e7982344eb9c10ce1e1e9e179c01bb8a55934656fd5d499f956d6e35e42f1f10_frg + _aac2d2ece8ff1acbf2ab0f821c8f1e4e2dbb2ca4c3a6918e2dc458dfab8ee05c_frg);\n}\n\n// name: Bytes Read From Main Memory\n// description: Total bytes read from main memory\n// type: Value\nfunction BytesReadFromMainMemory()\n{\n    return 64.0 * (_e7982344eb9c10ce1e1e9e179c01bb8a55934656fd5d499f956d6e35e42f1f10 + _aac2d2ece8ff1acbf2ab0f821c8f1e4e2dbb2ca4c3a6918e2dc458dfab8ee05c);\n}\n\n// name: Bytes Written To Main Memory in Vertex Shader\n// description: Total bytes written to main memory in vertex shader\n// type: Value\nfunction VSBytesWrittenToMainMemory()\n{\n    return 64.0 * _190175e7010a5c90cc957e3f3eed64c3910111ef228808fbb2462cd269524ef5_vtx;\n}\n\n// name: Bytes Written To Main Memory in Fragment Shader\n// description: Total bytes written to main memory in fragment shader\n// type: Value\nfunction FSBytesWrittenToMainMemory()\n{\n    return 64.0 * _190175e7010a5c90cc957e3f3eed64c3910111ef228808fbb2462cd269524ef5_frg;\n}\n\n// name: Bytes Written To Main Memory\n// description: Total bytes written to main memory\n// type: Value\nfunction BytesWrittenToMainMemory()\n{\n    return 64.0 * _190175e7010a5c90cc957e3f3eed64c3910111ef228808fbb2462cd269524ef5;\n}\n\n// name: VS Global Atomic Bytes Read\n// description: Total global atomic bytes read in Vertex Shader\n// type: Value\nfunction VSTotalGlobalAABytesRead()\n{\n    return 64.0 * Math.max(_3c6dba64fd85b35b8b8339f1d322943087d45cbb9b6689c587fd76259587a9d8_vtx - _ac73411a986e90adcd0a1181ace1f2684e4a900be931343385b93f58de650db4_vtx, 0.0);\n}\n\n// name: FS Global Atomic Bytes Read\n// description: Total global atomic bytes read in fragment shader\n// type: Value\nfunction FSTotalGlobalAABytesRead()\n{\n    return 64.0 * Math.max(_3c6dba64fd85b35b8b8339f1d322943087d45cbb9b6689c587fd76259587a9d8_frg - _ac73411a986e90adcd0a1181ace1f2684e4a900be931343385b93f58de650db4_frg, 0.0);\n}\n\n// name: Global Atomic Bytes Read\n// description: Total global atomic bytes read\n// type: Value\nfunction TotalGlobalAABytesRead()\n{\n    return 64.0 * Math.max(_3c6dba64fd85b35b8b8339f1d322943087d45cbb9b6689c587fd76259587a9d8 - _ac73411a986e90adcd0a1181ace1f2684e4a900be931343385b93f58de650db4, 0.0);\n}\n\n// name: VS Global Atomic Bytes Written\n// description: Total global atomic bytes written in Vertex Shader\n// type: Value\nfunction VSTotalGlobalAABytesWritten()\n{\n    return 64.0 * (_3c6dba64fd85b35b8b8339f1d322943087d45cbb9b6689c587fd76259587a9d8_vtx);\n}\n\n// name: FS Global Atomic Bytes Written\n// description: Total global atomic bytes written in fragment shader\n// type: Value\nfunction FSTotalGlobalAABytesWritten()\n{\n    return 64.0 * (_3c6dba64fd85b35b8b8339f1d322943087d45cbb9b6689c587fd76259587a9d8_frg);\n}\n\n// name: Global Atomic Bytes Written\n// description: Total global atomic bytes written\n// type: Value\nfunction TotalGlobalAABytesWritten()\n{\n    return 64.0 * (_3c6dba64fd85b35b8b8339f1d322943087d45cbb9b6689c587fd76259587a9d8);\n}\n\n// name: VS Global Atomic Instructions With Return Data\n// description: Total global atomic instructions with return data in Vertex Shader\n// type: Value\nfunction VSTotalGlobalAAInstructions()\n{\n    return 16.0 * _5573f0ed078d893d618327787a93dccd1ac9197b27429c1a36a320ac1540db2a_vtx;\n}\n\n// name: VS Global Atomic Instructions With No Return Data\n// description: Total global atomic instructions with no return data in Vertex Shader\n// type: Value\nfunction VSTotalGlobalAAInstructionsNoReturn()\n{\n    return 16.0 * _638ed0f36a4187b9ecad2646b42a73d9269d37f3458bf8140de61a5a5448252c_vtx;\n}\n\n// name: FS Global Atomic Instructions With Return Data\n// description: Total global atomic instructions with return data in Fragment Shader\n// type: Value\nfunction FSTotalGlobalAAInstructions()\n{\n    return 16.0 * _5573f0ed078d893d618327787a93dccd1ac9197b27429c1a36a320ac1540db2a_frg;\n}\n\n// name: FS Global Atomic Instructions With No Return Data\n// description: Total global atomic instructions with no return data in Fragment Shader\n// type: Value\nfunction FSTotalGlobalAAInstructionsNoReturn()\n{\n    return 16.0 * _638ed0f36a4187b9ecad2646b42a73d9269d37f3458bf8140de61a5a5448252c_frg;\n}\n\n// name: FS Global Atomic Instructions With Return Data\n// description: Total global atomic instructions with return data in shaders\n// type: Value\nfunction TotalGlobalAAInstructions()\n{\n    return 16.0 * _5573f0ed078d893d618327787a93dccd1ac9197b27429c1a36a320ac1540db2a;\n}\n\n// name: FS Global Atomic Instructions With No Return Data\n// description: Total global atomic instructions with no return data in shaders\n// type: Value\nfunction TotalGlobalAAInstructionsNoReturn()\n{\n    return 16.0 * _638ed0f36a4187b9ecad2646b42a73d9269d37f3458bf8140de61a5a5448252c;\n}\n\n\n// name: VS L2 Bytes Read\n// description: Total L2 bytes read in Vertex Shader\n// type: Value\nfunction VSTotalL2BytesRead()\n{\n    return 64.0 * (_ef52925e500884ba6b276e576ae78b97fd8448dfadeba596c2202b5202e246c3_vtx + _43fe12d20dfe3a9ea7b303773d624405e026e20b2c550822f2587997d2557f13_vtx + _0d5290b07753d1bbf223d0700438322c356bc6d3f028bf47df09e81f21da75c6_vtx + _3329a7bf90f5b81c24f86beffadfc66daefb2b2f45b08cdb822f931dac7370d6_vtx) + VSTotalGlobalAABytesRead();\n}\n\n// name: FS L2 Bytes Read\n// description: Total L2 bytes read in fragment shader\n// type: Value\nfunction FSTotalL2BytesRead()\n{\n    return 64.0 * (_ef52925e500884ba6b276e576ae78b97fd8448dfadeba596c2202b5202e246c3_frg + _43fe12d20dfe3a9ea7b303773d624405e026e20b2c550822f2587997d2557f13_frg + _0d5290b07753d1bbf223d0700438322c356bc6d3f028bf47df09e81f21da75c6_frg + _3329a7bf90f5b81c24f86beffadfc66daefb2b2f45b08cdb822f931dac7370d6_frg) + FSTotalGlobalAABytesRead();\n}\n\n// name: L2 Bytes Read\n// description: Total L2 bytes read\n// type: Value\nfunction TotalL2BytesRead()\n{\n    return 64.0 * (_ef52925e500884ba6b276e576ae78b97fd8448dfadeba596c2202b5202e246c3 + _43fe12d20dfe3a9ea7b303773d624405e026e20b2c550822f2587997d2557f13 + _0d5290b07753d1bbf223d0700438322c356bc6d3f028bf47df09e81f21da75c6 + _3329a7bf90f5b81c24f86beffadfc66daefb2b2f45b08cdb822f931dac7370d6) + TotalGlobalAABytesRead();\n}\n\n// name: VS L2 bytes written\n// description: Total L2 Bytes Written in vertex shader\n// type: Value\nfunction VSTotalL2BytesWritten()\n{\n    return 64.0 * (_d7a23701e11432625d46f02ff35668e60e55a7706704976facfe5fbeea3b1936_vtx + _88723e1253a5c3264f69b1fbf3a6b7f3ab67bbd9fe97afeedb649146b3b8b043_vtx + _56a63abf333e0f9f06f1a00635d4125c3910b3c00286e4fb3652687402916c8a_vtx) + VSTotalGlobalAABytesWritten()\n}\n\n// name: FS L2 Bytes Written\n// description: Total L2 bytes written in fragment shader\n// type: Value\nfunction FSTotalL2BytesWritten()\n{\n    return 64.0 * (_d7a23701e11432625d46f02ff35668e60e55a7706704976facfe5fbeea3b1936_frg + _88723e1253a5c3264f69b1fbf3a6b7f3ab67bbd9fe97afeedb649146b3b8b043_frg + _56a63abf333e0f9f06f1a00635d4125c3910b3c00286e4fb3652687402916c8a_frg) + FSTotalGlobalAABytesWritten()\n}\n\n// name: L2 Bytes Written\n// description: Total L2 bytes written\n// type: Value\nfunction TotalL2BytesWritten()\n{\n    return 64.0 * (_d7a23701e11432625d46f02ff35668e60e55a7706704976facfe5fbeea3b1936 + _88723e1253a5c3264f69b1fbf3a6b7f3ab67bbd9fe97afeedb649146b3b8b043 + _56a63abf333e0f9f06f1a00635d4125c3910b3c00286e4fb3652687402916c8a) + TotalGlobalAABytesWritten()\n}\n\n// name: VS Total Texture L1 Bytes Read\n// description: Total bytes read from texture L1 cache in vertex shader\n// type: Value\nfunction VSTotalBytesReadFromTextureL1Cache()\n{\n    return 16.0*(4.0 * _a8aac8549e9e4a65ca6d3143f42067a6b99241a9a056d0bb512624ee4a91ebc6_vtx + 3.0 * _c0d09f7c090cf4aba7f28554d5fbc55c24426ef3c548a77fa8def417b1823500_vtx + 2.0 * _5a879b789f129c90cada6c1f3173468a47dbc0b43eb8f7e0f8c9602136a0ae0d_vtx + _c5abc56251535ca5b6258367a41d21e518b437e511763fe0d6f0e84ec115ff41_vtx);\n}\n\n// name: FS Total Texture L1 Bytes Read\n// description: Total bytes read from texture L1 cache in fragment shader\n// type: Value\nfunction FSTotalBytesReadFromTextureL1Cache()\n{\n    return 16.0*(4.0 * _a8aac8549e9e4a65ca6d3143f42067a6b99241a9a056d0bb512624ee4a91ebc6_frg + 3.0 * _c0d09f7c090cf4aba7f28554d5fbc55c24426ef3c548a77fa8def417b1823500_frg + 2.0 * _5a879b789f129c90cada6c1f3173468a47dbc0b43eb8f7e0f8c9602136a0ae0d_frg + _c5abc56251535ca5b6258367a41d21e518b437e511763fe0d6f0e84ec115ff41_frg);\n}\n\n// name: Texture L1 Bytes Read\n// description: Total bytes read from texture L1 cache\n// type: Value\nfunction TotalBytesReadFromTextureL1Cache()\n{\n    return 16.0*(4.0 * _a8aac8549e9e4a65ca6d3143f42067a6b99241a9a056d0bb512624ee4a91ebc6 + 3.0 * _c0d09f7c090cf4aba7f28554d5fbc55c24426ef3c548a77fa8def417b1823500 + 2.0 * _5a879b789f129c90cada6c1f3173468a47dbc0b43eb8f7e0f8c9602136a0ae0d + _c5abc56251535ca5b6258367a41d21e518b437e511763fe0d6f0e84ec115ff41);\n}\n\n// name: VS Buffer L1 Bytes Read\n// description: Total bytes read from buffer L1 cache in vertex shader\n// type: Value\nfunction VSTotalBytesReadFromBufferL1Cache()\n{\n    return _f3b0ac2ff165c0670b2240e2ab5a6536283a3731be38544cccd5d6393815b687_vtx * 16.0;\n}\n\n// name: FS Buffer L1 Bytes Read\n// description: Total bytes read from buffer L1 cache in fragment shader\n// type: Value\nfunction FSTotalBytesReadFromBufferL1Cache()\n{\n    return _f3b0ac2ff165c0670b2240e2ab5a6536283a3731be38544cccd5d6393815b687_frg * 16.0;\n}\n\n// name: Buffer L1 Bytes Read\n// description: Total bytes read from buffer L1 cache\n// type: Value\nfunction TotalBytesReadFromBufferL1Cache()\n{\n    return _f3b0ac2ff165c0670b2240e2ab5a6536283a3731be38544cccd5d6393815b687 * 16.0;\n}\n\n// name: VS Buffer L1 Bytes Written\n// description: Total bytes written to buffer L1 cache in vertex shader\n// type: Value\nfunction VSTotalBytesWrittenBufferL1Cache()\n{\n    return _dcc19066dda99b0411d8c63a3e83f6f7f1d98ab35e1abb6ea67d0cc2c48fb902_vtx * 16.0;\n}\n\n// name: FS Buffer L1 Bytes Written\n// description: Total bytes written to buffer L1 cache in fragment shader\n// type: Value\nfunction FSTotalBytesWrittenBufferL1Cache()\n{\n    return _dcc19066dda99b0411d8c63a3e83f6f7f1d98ab35e1abb6ea67d0cc2c48fb902_frg * 16.0;\n}\n\n// name: Buffer L1 Bytes Written\n// description: Total bytes written to buffer L1 cache\n// type: Value\nfunction TotalBytesWrittenBufferL1Cache()\n{\n    return _dcc19066dda99b0411d8c63a3e83f6f7f1d98ab35e1abb6ea67d0cc2c48fb902 * 16.0;\n}\n\n// name: Predicated Texture Thread Writes\n// description: Percentage thread predicated out due to divergent control flow or small primitives covering part of quad in the render target on texture writes\n// type: Percentage\nfunction PredicatedTextureWritePercentage()\n{\n    if (_f406f88bdd312ec0455d0943c388de77e53b86cf0109624b028c3aa596ec3bf4 + _9da983fb76d81017bb17c1307769e9cdaa3547cc33eadcf7f389043343c66b31 > 0)\n    {\n        return Math.max(100.0 * (1.0 - _f406f88bdd312ec0455d0943c388de77e53b86cf0109624b028c3aa596ec3bf4 / _9da983fb76d81017bb17c1307769e9cdaa3547cc33eadcf7f389043343c66b31), 0.0);\n    }\n    return 0.0;\n}\n\n// name: Predicated Texture Thread Reads\n// description: Percentage threads predicated out due to divergent control flow or small primitives covering part of quad in the render target on texture reads\n// type: Percentage\nfunction PredicatedTextureReadPercentage()\n{\n    if (TextureAccesses() > 0)\n    {\n        return Math.max(100.0 * (1.0 - TextureAccesses() / Math.max(4.0*TextureQuads(), 1.0)), 0.0);\n    }\n    return 0.0;\n}\n\n// name: Samples Shaded Per Tile\n// description: Samples shaded per tile\n// type: Rate\nfunction SamplesShadedPerTile()\n{\n    return 64.0 * _416b2a4855c3ad10e45eaab8493e7651ad66f8e3d44ad880fa8111c87ccd090a / _eda5bce70befa39e7c6029505c0269211092c220048a502fd8fa2fe30895465b;\n}\n\n// name: Samples Shaded Per Quad\n// description: Samples shaded per quad\n// type: Rate\nfunction SamplesShadedPerQuad()\n{\n    return 64.0 * _416b2a4855c3ad10e45eaab8493e7651ad66f8e3d44ad880fa8111c87ccd090a / Math.max(4.0 * _ca0d54323c1777d994357aaacdb7beac572bea11cd16afed4c756f3dc9496a18, 1.0);\n}\n\n// name: VS Predicated Out ALU Percentage\n// description: Percentage issued ALU operations predicated out due to divergent control flow in the verex shader\n// type: Percentage\nfunction VSPredicatedALUPercentage()\n{\n    var instructionsIssued = 128.0 * (_0af59bb3dd0a90f2664cd5e5601b3c56bf91e40478def55647411007dc5394d3_vtx + _a6e6cc683eebf697b2a31bd7d4f877afee2419f6882f55b2f4ea296c9a368b99_vtx + _4ffbecab1c5697bfb927de016f6ddd4b010ddb0588049be5243c148e62d21409_vtx + _04ec68f75ab42cefa364623ffb059b101b9d6d35ed0e59abbbc94170b4ec6cbe_vtx);\n    var instructionsExecuted = 16.0 * (_82b2f93079459b00fb869444cfcf44604cc1a91d28078cd6bfd7bb6ea6ba423d_vtx + _8e70441b8b0d9ded3ed900ec761f9f5960b106c5a304b44d62781621d5d1861a_vtx + _23c51175314006fa4b6798dcb173a814349e2e5947244cfdba868be736d2bc03_vtx + _827783963eafa9275a53fc2b3ef13214ab90939fcc81572c4260e2eac9bd2acb_vtx);\n\n    if (instructionsIssued + instructionsExecuted > 0)\n    {\n        return Math.max(100.0 * (1.0 - instructionsExecuted / instructionsIssued), 0.0);\n    }\n    return 0.0;\n}\n\n// name: FS Predicated Out ALU Percentage\n// description: Percentage issued ALU operations predicated out due to divergent control flow in the fragment shader\n// type: Percentage\nfunction FSPredicatedALUPercentage()\n{\n    var instructionsIssued = 128.0 * (_0af59bb3dd0a90f2664cd5e5601b3c56bf91e40478def55647411007dc5394d3_frg + _a6e6cc683eebf697b2a31bd7d4f877afee2419f6882f55b2f4ea296c9a368b99_frg + _4ffbecab1c5697bfb927de016f6ddd4b010ddb0588049be5243c148e62d21409_frg + _04ec68f75ab42cefa364623ffb059b101b9d6d35ed0e59abbbc94170b4ec6cbe_frg);\n    var instructionsExecuted = 16.0 * (_82b2f93079459b00fb869444cfcf44604cc1a91d28078cd6bfd7bb6ea6ba423d_frg + _8e70441b8b0d9ded3ed900ec761f9f5960b106c5a304b44d62781621d5d1861a_frg + _23c51175314006fa4b6798dcb173a814349e2e5947244cfdba868be736d2bc03_frg + _827783963eafa9275a53fc2b3ef13214ab90939fcc81572c4260e2eac9bd2acb_frg);\n\n    if (instructionsIssued + instructionsExecuted > 0)\n    {\n        return Math.max(100.0 * (1.0 - instructionsExecuted / instructionsIssued), 0.0);\n    }\n    return 0.0;\n}\n\n// name: Kernel Predicated Out ALU Percentage\n// description: Percentage issued ALU operations predicated out due to divergent control flow in the compute shader\n// type: Percentage\nfunction CSPredicatedALUPercentage()\n{\n    var instructionsIssued = 128.0 * (_0af59bb3dd0a90f2664cd5e5601b3c56bf91e40478def55647411007dc5394d3_cmp + _a6e6cc683eebf697b2a31bd7d4f877afee2419f6882f55b2f4ea296c9a368b99_cmp + _4ffbecab1c5697bfb927de016f6ddd4b010ddb0588049be5243c148e62d21409_cmp + _04ec68f75ab42cefa364623ffb059b101b9d6d35ed0e59abbbc94170b4ec6cbe_cmp);\n    var instructionsExecuted = 16.0 * (_82b2f93079459b00fb869444cfcf44604cc1a91d28078cd6bfd7bb6ea6ba423d_cmp + _8e70441b8b0d9ded3ed900ec761f9f5960b106c5a304b44d62781621d5d1861a_cmp + _23c51175314006fa4b6798dcb173a814349e2e5947244cfdba868be736d2bc03_cmp + _827783963eafa9275a53fc2b3ef13214ab90939fcc81572c4260e2eac9bd2acb_cmp);\n\n    if (instructionsIssued + instructionsExecuted > 0)\n    {\n        return Math.max(100.0 * (1.0 - instructionsExecuted / instructionsIssued), 0.0);\n    }\n    return 0.0;\n}\n\n// name: Thread Group Bytes Read\n// description: Total bytes read from thread group memory\n// type: Value\nfunction TotalBytesReadFromThreadGroupMemory()\n{\n    return 16.0 * _4f6aebbe216cd96fa4684995ac68478cbdb59c6706480ecbbb9f101d892bb540;\n}\n\n// name: Thread Group Bytes Written\n// description: Total bytes written to thread group memory\n// type: Value\nfunction TotalBytesWrittenThreadGroupMemory()\n{\n    return 16.0 * _968353d331d798ff8c65ce5f1d5294c1f4bcd54f8004fe37c0ec8e0327bdb887;\n}\n\n// name: Compression Ratio of Texture Memory Written\n// description: Ratio of compressed to uncomressed texture memory written\n// type: Rate\nfunction CompressionRatioTextureMemoryWritten()\n{    \n    var cmpUncompressedDataBytes = \n        16 * _b0c17a5c575cab4f46333e38bd6c5902886cb23f0b0bdd39ee50a545af04f980 +\n        16 * _29d1821c8f9a15b9486ef2d149a664089d8baf032b29051eb8c4dbffad95563a +\n         8 * _ab00529c9f233f26d1887a6552565a5c815d7206fae8e841e96653d6e44d9720 +\n        32 * _73a07a4eb409d7dcb5949ffd6f41cd2f15b0af9dff6303cff06971131fd13dff +\n        16 * _820d6093023c1b36179134d53e2590bc112fb8589e446faccb6c1ff32b803a44 +         \n         8 * Math.min(_3f4145264446ac3fa9165321f5ce12ea5284d0b621920a5fd65e32beac4d6f8e, _152d131e904395c94f62600b1aee804dd01f6413a377d420b51aab9b3f3f9eea) + 32 * Math.max(_3f4145264446ac3fa9165321f5ce12ea5284d0b621920a5fd65e32beac4d6f8e - _152d131e904395c94f62600b1aee804dd01f6413a377d420b51aab9b3f3f9eea, 0) + \n         8 * _36cab0e3ce544617b00b2244cfa7202ae54954238de0d91881ca83f4e6006890 +\n        32 * _ed166f4251f67b6fe851d995eef5a54810e539a33c13bebd46871f67c1257db9 +\n        16 * _671c439841f54003d8b1841ee0686bae625654ce991af1ece3a9b85634720775 +\n        32 * _7bfee75e8041af01e3f7bd62a11b4cbda9b5ecb054574ace923b113697916b22 +\n        32 * _9bb1a0053cbf09e81970aafc5720e4e418c43e0b2c326f087ded04c65dbc0e9b +\n        16 * Math.min(_f8d45e0cb94a971819230fc94c9950574e128a668e4eb6af960d96a404e90992, _9ecd8b7f3f81f6032e49e5badac7785219bc515959163b44cf2ff0e729fb5ceb) + 32 * Math.max(_f8d45e0cb94a971819230fc94c9950574e128a668e4eb6af960d96a404e90992 - _9ecd8b7f3f81f6032e49e5badac7785219bc515959163b44cf2ff0e729fb5ceb, 0) +\n         8 * _1c29b926ad18fee198bc9230dfdfdae383ec4d829a4be6b302ec5674f781ae10 +\n         8 * _31f574c0d389246aecbc0a13edc218efe1f3530ad60535b352359f1b972a4ba4 +\n         8 * _a73165b1618dd20a1cb5f732d8b79c01aa4e6de5d3a38bfb671bac7f386d7af7 +\n        16 * _0b35f4e73bc24b0ddbf89f7eacab636514e7feb92400e7043d49c3a3f16085a6 +\n        16 * _d1e5b9d556bef5fca687ee5e774d58e824d8aafbdf63f1d2ef7a5c0821a1baa2 +\n         8 * _14df6325787f09d7a0686db47d6ac8d39ec78702b4ad93734091074e6e0b91ab +\n         4 * Math.min(_6ccf72e51e7667238e3c39f661809a1fae562f5649a8cbf8664352226c10d500, _70df27b9e10f246504668289db86105460e36602cf247efab6b18d4934c670b2) + 32 * Math.max(_6ccf72e51e7667238e3c39f661809a1fae562f5649a8cbf8664352226c10d500 - _70df27b9e10f246504668289db86105460e36602cf247efab6b18d4934c670b2, 0);\n\n\n    var cmpCompressedDataBytes = 32 * (_65651dd1b153cec80500d6665894d232894f2c83df5507865e1ef0c3f01bc6d0 + 2.0 * (_908f85285b4abff4a9dadb179123e90ac796cbfd79ff8c48df85253894e112bc + 2.0*_95f000cd0a64e23286a0e749df3b5efaefc8e76bc15a12bf049ed47b71e67ae7));\n\n    return cmpUncompressedDataBytes / Math.max(cmpCompressedDataBytes, 1);\n}\n\n// name: Compression Ratio of Texture Memory Read\n// description: Ratio of compressed to uncomressed texture memory read\n// type: Rate\nfunction CompressionRatioTextureMemoryRead()\n{\n    return (_1827ca25b7318e2df60eb0fe4f0c290b43054021ec3233e1fcdcf7b622fe4589 + _d71cecc319ceee3a8b2139d8eb4f992d7c1d97634b28c764596c845c528e79ff) / Math.max(_8788387fa2f782d31f4553bc55eb34284415d12b986df376e394838d5075f058, 1);\n}\n\n// name: VS Arithmetic Intensity\n// description: ALU ops per byte of main memory traffic in vertex shader\n// type: Rate\nfunction VSArithmeticIntensity()\n{\n    return VSALUInstructions() / Math.max(1, VSBytesReadFromMainMemory() + VSBytesWrittenToMainMemory());\n}\n\n// name: FS Arithmetic Intensity\n// description: ALU Time in nSec per byte of main memory transfer in fragment shader\n// type: Rate\nfunction FSArithmeticIntensity()\n{\n    return FSALUInstructions() / Math.max(1, FSBytesReadFromMainMemory() + FSBytesWrittenToMainMemory());\n}\n\n// name: CS Arithmetic Intensity\n// description: ALU ops per byte of main memory traffic in compute shader\n// type: Rate\nfunction CSArithmeticIntensity()\n{\n    return CSALUInstructions() / Math.max(1, BytesReadFromMainMemory() + BytesWrittenToMainMemory());\n}\n\n// name: VS Main Memory Throughput\n// description: Main memory throughput in GB/s in a vertex shader\n// type: Rate\nfunction VSMainMemoryThroughput()\n{\n    return (VSBytesReadFromMainMemory() + VSBytesWrittenToMainMemory()) / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_vtx * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}\n\n// name: FS Main Memory Throughput\n// description: Main memory throughput in GB/s in a fragment shader\n// type: Rate\nfunction FSMainMemoryThroughput()\n{\n    return (FSBytesReadFromMainMemory() + FSBytesWrittenToMainMemory()) / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_frg * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}\n\n// name: Main Memory Throughput\n// description: Main memory throughput in GB/s\n// type: Rate\nfunction MainMemoryThroughput()\n{\n    return (BytesReadFromMainMemory() + BytesWrittenToMainMemory()) / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}\n\n// name: VS ALU Performance\n// description: ALU performance in Giga Ops / Sec in vertex shader\n// type: Rate\nfunction VSALUPerformance()\n{\n    return VSALUInstructions() / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_vtx * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}\n\n// name: FS ALU Performance\n// description: ALU performance in Giga Ops / Sec in fragment shader\n// type: Rate\nfunction FSALUPerformance()\n{\n    return FSALUInstructions() / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_frg * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}\n\n// name: CS ALU Performance\n// description: ALU performance in Giga Ops / Sec in compute shader\n// type: Rate\nfunction CSALUPerformance()\n{\n    return CSALUInstructions() / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e_cmp * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}\n\n// name: Buffer Main Memory Bytes Read\n// description: Total bytes read for buffers from main memory\n// type: Value\nfunction BytesReadForBuffersFromMainMemory()\n{\n    return 64.0 * _3524ddd7c801ffbe5b629d1aae54b01dce1bd5cbabcadbac658fb15c9f1135fa;\n}\n\n// name: VS Buffer Main Memory Bytes Read\n// description: Total bytes read for buffers from main memory for vertex shader\n// type: Value\nfunction VSBytesReadForBuffersFromMainMemory()\n{\n    return 64.0 * _3524ddd7c801ffbe5b629d1aae54b01dce1bd5cbabcadbac658fb15c9f1135fa_vtx;    \n}\n\n// name: FS Buffer Main Memory Bytes Read\n// description: Total bytes read for buffers from main memory for fragment shader\n// type: Value\nfunction FSBytesReadForBuffersFromMainMemory()\n{\n    return 64.0 * _3524ddd7c801ffbe5b629d1aae54b01dce1bd5cbabcadbac658fb15c9f1135fa_frg;\n}\n\n// name: Buffer Main Memory Bytes Written\n// description: Total bytes written for buffers from main memory\n// type: Value\nfunction BytesWrittenForBuffersFromMainMemory()\n{\n    return 64.0 * _d693bda8a291d4a4929c36b50377680028df60b900d0bae2e1feb5aef41d5404;\n}\n\n// name: VS Buffer Main Memory Bytes Written\n// description: Total bytes written for buffers from main memory for vertex shader\n// type: Value\nfunction VSBytesWrittenForBuffersFromMainMemory()\n{\n    return 64.0 * _d693bda8a291d4a4929c36b50377680028df60b900d0bae2e1feb5aef41d5404_vtx;\n}\n\n// name: FS Buffer Main Memory Bytes Written\n// description: Total bytes written for buffers from main memory for fragment shader\n// type: Value\nfunction FSBytesWrittenForBuffersFromMainMemory()\n{\n    return 64.0 * _d693bda8a291d4a4929c36b50377680028df60b900d0bae2e1feb5aef41d5404_frg;\n}\n\n// name: Texture Main Memory Bytes Written\n// description: Total bytes written for textures to main memory\n// type: Value\nfunction TextureBytesWrittenToMainMemory()\n{                \n    return 64.0 * (_969097e14ac458fc664d8855c4cf42930633f3e7953b630ac64cefbfc631b504 + 2.0 * _762d4c9354eb1d7a3a6756b9847937475c7d144b361e89916be6793785daccf1 + _306343175ea6938c9a677c4a545c1b9c2d2d4b0f30fb496daca682a08b929e03 + 2.0 * _e01b12f6e785736c5416b03a1ac9de509c7bcc6311692077d53497150db6cb55 +\n                   _5bd1614f0c8060aefca1a2bd9a9e9ee750163626cdc0c38d723e94470730cfe6 + 2.0 * _c5b103e58e91d43549acb4af04601a97cecc95caa0e6fe0c9c3c35a3a60fbd45 + _5d503a1872859aa411818cfbcb70e41b501704501f31a039c3acb306fb382113 + 2.0 * _b6489d493ca65c9e43746d81294f5f613015fde58abf9a2945b0e6131c921e85)\n}\n\n// name: Z Main Memory Bytes Written\n// description: Total bytes written for textures to main memory\n// type: Value\nfunction ZBytesWrittenToMainMemory()\n{                \n    return 64.0 * (_513d287e274b210e0367b2abc7ef2608b0059fb5a6acf749144343586fe1c637 + 2.0 * _4e90e2533a170479afd8d0b83a68177595b7245bf4ab6e20096a9e0c0529012e + _38ac6faf9eaef3f9faf843a65ce0c1f445989a19ba86e9386abeca4e0e01cf3d + 2.0 * _6d4821165f0bbae1363beb8117b91295a3ffad188a87aa55b06b10f7370fca85);\n}\n\n// name: Texture Main Memory Bytes Read\n// description: Total bytes read for textures from main memory\n// type: Value\nfunction TextureBytesReadFromMainMemory()\n{\n    return 64.0 * (_5dcbce50d229822aa963dcf83c2de8fbe54d8328f89e076ef096ddfd2fa7dd52 + _58ef35a421546beb70de0b899c35b32fe4d93474d5120fa782ebb62bf1f9683c);\n}\n\n// name: Buffer Read Limiter\n// description: Measures the time during which buffer loads are attempted to execute as a percentage of peak buffer load performance.\n// type: Percentage\nfunction BufferLoadLimiter()\n{    \n    return _224fc5057da0739817ec8947d2fb1ad3ff63c2ceb3fabe0e34719c0eb465d7e9_norm / (4.0 * num_cores);\n}  \n\n// name: VS Buffer Read Limiter\n// description: VS Buffer read limiter\n// type: Percentage\nfunction VertexBufferLoadLimiter()\n{    \n    return _224fc5057da0739817ec8947d2fb1ad3ff63c2ceb3fabe0e34719c0eb465d7e9_norm_vtx / (4.0 * num_cores);\n}\n\n// name: FS Buffer Read Limiter\n// description: FS Buffer read limiter\n// type: Percentage\nfunction FragmentBufferLoadLimiter()\n{    \n    return _224fc5057da0739817ec8947d2fb1ad3ff63c2ceb3fabe0e34719c0eb465d7e9_norm_frg / (4.0 * num_cores);\n}\n\n// name: Buffer Write Limiter\n// description: Measures the time during which buffer stores are attempted to execute as a percentage of peak buffer load performance.\n// type: Percentage\nfunction BufferStoreLimiter()\n{    \n    return _b39850e6fdaf024c59701c0ee69b15fce7e4f6c92aa385e9920569a6f595745f_norm / (2.0 * num_cores);\n}\n\n// name: VS Buffer Write Limiter\n// description: VS Buffer write limiter\n// type: Percentage\nfunction VertexBufferStoreLimiter()\n{    \n    return _b39850e6fdaf024c59701c0ee69b15fce7e4f6c92aa385e9920569a6f595745f_norm_vtx / (2.0 * num_cores);\n}\n\n// name: FS Buffer Write Limiter\n// description: FS Buffer write limiter\n// type: Percentage\nfunction FragmentBufferStoreLimiter()\n{    \n    return _b39850e6fdaf024c59701c0ee69b15fce7e4f6c92aa385e9920569a6f595745f_norm_frg / (2.0 * num_cores);\n}\n\n// name: Fragment Input Interpolation Limiter\n// description: Measures the time during which fragment shader input interpolation work is attempted to execute as a percentage of peak input interpolation performance.\n// type: Percentage\nfunction FragmentInputInterpolationLimiter()\n{    \n    return _e5f2d8a6cf9651b49b3b00bebdf815a5269b8c89fc3bc02057a3a14e28733495_norm / (1.0 * num_cores);\n}\n\n// name: GPU Last Level Cache Limiter\n// description: Measures the time during which GPU’s last level cache is attempting to service read and write requests as a percentage of cache’s peak performance.\n// type: Percentage\nfunction L2CacheLimiter()\n{\n    return (_5c5c55d05fb355aa5be61ac63c88eb4a2a521a47dd8f79c18b5c1df163d5cb55_norm + _c9bcd5df6397dc8477a12ddf9358bccbbb3d8e52fc3dadab320be9bbb14fe157_norm) / 4.0;\n}\n\n// name: GPU Last Level Cache Limiter Miss Rate\n// description: Percentage of times GPU’s last level cache lookups are misses\n// type: Percentage\nfunction L2CacheMissRate()\n{\n    return 100.0 * _44e2790fe56248cd45e2248d0f69699da605c77fab749daf6c865f1ab5f16563 / Math.max(_5c5c55d05fb355aa5be61ac63c88eb4a2a521a47dd8f79c18b5c1df163d5cb55, 1.0);\n}\n\n// name: Vertex Occupancy\n// description: Measures how many vertex shader simdgroups are concurrently running in the GPU relative to the GPU’s maximum number of concurrently running simdgroups.\n// type: Percentage\nfunction VertexOccupancy()\n{\n    return _4bb4a72bfa974f38e0143eef87e93ae69847e8612684f014350fb4a8c0692050_norm / (_d56cff6c89d6a3f5f8561cd89f1b36b2760c125d908074d984bc36678982991a * num_cores);\n}\n\n// name: Fragment Occupancy\n// description: Measures how many fragment shader simdgroups are concurrently running in the GPU relative to the GPU’s maximum number of concurrently running simdgroups.\n// type: Percentage\nfunction FragmentOccupancy()\n{\n    return _367a60a3f4d39b45114c57a560ad1bad4f9f62798346ead3a98f790ad32537a6_norm / (_d56cff6c89d6a3f5f8561cd89f1b36b2760c125d908074d984bc36678982991a * num_cores);\n}\n\n// name: Compute Occupancy\n// description: Measures how many compute shader simdgroups are concurrently running in the GPU relative to the GPU’s maximum number of concurrently running simdgroups.\n// type: Percentage\nfunction ComputeOccupancy()\n{\n    return _6b3a9b25a65b692ad1039bcc4c052d5a85e40a9410946c0cdf5dc85d993e2131_norm / (_d56cff6c89d6a3f5f8561cd89f1b36b2760c125d908074d984bc36678982991a * num_cores);\n}\n\n// name: GPU Read Bandwidth\n// description: Measures how much memory, in gigabytes per second, are read by the GPU from a memory external to the GPU (potentially main memory).\n// type: Rate\nfunction GPUReadBandwidth()\n{    \n    return BytesReadFromMainMemory() / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}   \n\n// name: GPU Write Bandwidth\n// description: Measures how much memory, in gigabytes per second, are written by the GPU to a memory external to the GPU (potentially main memory).\n// type: Rate\nfunction GPUWriteBandwidth()\n{    \n    return BytesWrittenToMainMemory() / Math.max(1, (_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e * _ca35e381a2fdcb4f0dbc27e38f0b0bd85835a4197c6256f58d2c59888cb0fce6));\n}   \n\n// name: ALU Utilization\n// description: ALU utilization\n// type: Percentage\nfunction ALUUtilization()\n{\n    return _c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2_norm / num_cores;\n}\n\n// name: F32 Utilization\n// description: F32 utilization\n// type: Percentage\nfunction F32Utilization()\n{\n    return (_55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 * _a6e6cc683eebf697b2a31bd7d4f877afee2419f6882f55b2f4ea296c9a368b99_norm * 4) / (64 * num_cores);\n}   \n\n// name: F16 Utilization\n// description: F16 utilization\n// type: Percentage\nfunction F16Utilization()\n{\n    return (_55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 * _0af59bb3dd0a90f2664cd5e5601b3c56bf91e40478def55647411007dc5394d3_norm * 4) / (128 * num_cores);\n}\n\n// name: IC Utilization\n// description: IC utilization\n// type: Percentage\nfunction ICUtilization()\n{\n    return (_55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 * _04ec68f75ab42cefa364623ffb059b101b9d6d35ed0e59abbbc94170b4ec6cbe_norm * 4) / (32 * num_cores);\n}\n\n// name: SCIB Utilization\n// description: SCIB utilization\n// type: Percentage\nfunction SCIBUtilization()\n{\n    return (_55d0c180ad87ec962138c5c289baadd6969fdd2cd21ef68ab1f91190b6c33812 * _4ffbecab1c5697bfb927de016f6ddd4b010ddb0588049be5243c148e62d21409_norm * 4) / (128 * num_cores);\n}\n\n// name: Texture Sample Utilization\n// description: Texture sample utilization\n// type: Percentage\nfunction TextureSamplesUtilization()\n{\n    return _6d86d89a09a872e62b809325d49d6967e2327aa5d1d4ea471d700f29696b9560_norm / (2.0 * num_cores);    \n}\n\n// name: Texture Write Utilization\n// description: Texture write utilization\n// type: Percentage\nfunction TextureWritesUtilization()\n{\n    return _bb9dbea90df77e54beebae872b35923d727fd2a59d6905410b32092d6d561402_norm / (1.0 * num_cores);\n}\n\n// name: Buffer Load Utilization\n// description: Buffer load utilization\n// type: Percentage\nfunction BufferLoadUtilization()\n{\n    return _8cd74591f03ed3eb90e0c547b8bf21ae7eed4129053f40570cce56a39a690015_norm / (4 * num_cores);\n}\n\n// name: Buffer Store Utilization\n// description: Buffer store utilization\n// type: Percentage\nfunction BufferStoreUtilization()\n{\n    return _3dfa6da703ded5b65a76ddf0aa3f7f28f19b4a624ef77347a925f55bf66a82f5_norm / (2 * num_cores);\n}\n\n// name: Threadgroup/Imageblock Load Utilization\n// description: Threadgroup/Imageblock load utilization\n// type: Percentage\nfunction LocalLoadUtilization()\n{\n    return _4f6aebbe216cd96fa4684995ac68478cbdb59c6706480ecbbb9f101d892bb540_norm / (4.0 * num_cores);\n}   \n\n// name: Threadgroup/Imageblock Store Utilization\n// description: Threadgroup/Imageblock store utilization\n// type: Percentage\nfunction LocalStoreUtilization()\n{\n    return _968353d331d798ff8c65ce5f1d5294c1f4bcd54f8004fe37c0ec8e0327bdb887_norm / (4.0 * num_cores);\n} \n\n// name: Fragment Input Interpolation Utilization\n// description: Fragment input interpolation utilization\n// type: Percentage\nfunction FragmentInputInterpolationUtilization()\n{\n    return _95b5e692e6eefd3c235ce8ef2be2b781023c467a45108be8e5bb4beea25dfe6f_norm / (1.0 * num_cores);\n}\n\n// name: GPU Last Level Cache Utilization\n// description: GPU last level cache utilization\n// type: Percentage\nfunction L2CacheUtilization()\n{    \n    return _5c5c55d05fb355aa5be61ac63c88eb4a2a521a47dd8f79c18b5c1df163d5cb55_norm / 4.0;\n}\n\n// name: Partial Renders count\n// description: Count number of partial renders in the encoder\n// type: Count\nfunction PartialRenders()\n{\n    return _5018ff101ee67fee86c0348828e1c15e0a4dfdc0e37c99134711930a1c5eaa79;\n}\n\n// name: Parameter Buffer Bytes Used\n// description: Parameter Buffer Bytes Used\n// type: Count\nfunction ParameterBufferBytesUsed()\n{\n    return _4d198d9a415b725cd301ce6cf3ecaa00d37481ec5d44c0d72094acf20d374c74;\n}\n\n// name: Frag Ticks Count\n// description: Frag Tick for limiters\n// type: Value\nfunction FRGTicks()\n{    \n    return _06f73dd77cc4f21054a372b34a28a1d5d054ff7241ee73be67f927d897211048;\n}\n\n// name: Comprehensive Fragment Input Interpolation Limiter\n// description: Comprehensive Fragment Input Interpolation limiter\n// type: Percentage\nfunction ComprehensiveFragmentInputInterpolationLimiter()\n{\n    return Math.max(FragmentInputInterpolationLimiter(), Math.min((_81e94ff007a99cc84c59352583de71dad427a422d70be052cff38c6e018907ee_norm + _c1043a6e3112f17390996d9c7e6ccd58dd5e1fd64f7fb92fa4f59c07e569bf95_norm) / (1.0 * num_cores), 100.0));\n}\n\n// name: Comprehensive Fragment Input Interpolation Utilization\n// description: Comprehensive Fragment Input Interpolation Utilization\n// type: Percentage\nfunction ComprehensiveFragmentInputInterpolationUtilization()\n{\n    return Math.max(FragmentInputInterpolationUtilization(), Math.min(_81e94ff007a99cc84c59352583de71dad427a422d70be052cff38c6e018907ee_norm / (1.0 * num_cores), 100.0));\n}   \n\n// name: Texture Cache Limiter\n// description: Texture cache limiter\n// type: Percentage\nfunction TextureCacheLimiter()\n{\n    return Math.min((_e04363b0193aecfc56d5f1c5edb7fc2147625522e4ecdb3a8d24ae32f45eaa5c_norm + _f89636291d4d2848204d266a1eff5d7b231750cc967f91d005cb1fc30779b1cc_norm) / (num_cores), 100.0);\n}  \n\n// name: Sparse Texture Translation Limiter\n// description: Sparse texture address translation limiter\n// type: Percentage\nfunction SparseTextureTranslationLimiter()\n{\n    return Math.min(Math.max(_1f271f3430e8ca846395d050220e5ad9537ae2993c95071369b9613db4c36b9b_norm + _d8ecb4c1fc88e27e17d6826cdc602f8657919610ca490526acdf21bcc5394ab7_norm, _adcaa1bfdaea7d31b4a776ffd13089ba401d5c9c533c77378b5f378062215fdb_norm + _883c062d224c59ccd4c4303a7caeacbd0aa87cd6fffd5347dfedb52a23f4a6e5_norm, _d37f73c804be99f61d4e0d20151d2305f2c4fec5990853e47d56da4a0d75cb31_norm + _37354b6e4ee3693b3b82dcc6cc0c4aaf5fbbdf1e2a44b7ce11d6ed6f45dad635_norm) / (num_cores), 100.0);\n}\n\n// name: Number of Sparse Texture Requests\n// description: Sparse texture requests\n// type: Value\nfunction SparseTextureRequests()\n{\n    return _d2acb8217628c8c28df030d3f819e3831a16760dc5af79722487d789d9cbe02d + _847829852334f2b320f2b2890d9a9c3dd7022b760b29a94540ba4fe13d1dd91a + _a7dd90063ddd29bf1b2d1259297cca0904b949cc92e9dee2e929fec2294f0422;\n}\n\n// name: Average Sparse Texture Request Size\n// description: Average Sparse Texture Request Size in KB\n// type: Rate\nfunction AverageSparseTextureRequestSize()\n{\n    return 16.0*(_d2acb8217628c8c28df030d3f819e3831a16760dc5af79722487d789d9cbe02d + 4.0*_847829852334f2b320f2b2890d9a9c3dd7022b760b29a94540ba4fe13d1dd91a + 16.0*_a7dd90063ddd29bf1b2d1259297cca0904b949cc92e9dee2e929fec2294f0422) / Math.max(SparseTextureRequests(), 1.0);\n}\n\n// name: Fragment Generator Primitive Utilization\n// description: Fragment generator primitive processing utilization\n// type: Percentage\nfunction FragmentGeneratorPrimitiveUtilization()\n{\n    return (_64a10cb112e74a4ec02f177b245e3f83edd61c0f78bc5bc7ae4978ce28f07f83_norm) / (0.25 * num_cores);\n}  \n\n// name: Fragment Rasterizer Utilization\n// description: Fragment Rasterizer utilization\n// type: Percentage\nfunction FragmentRasterizerUtilization()\n{\n    var msaa = 2.0 * _aabc9758d4e52fd36dfb1a0e38171798aa7bf2ec665135dc298c1aa1a7c10760_frg / Math.max(_7cef4e481233623472ea3e1f6b4131fabb20f247f7e5eae173dfd693aa60d0ff_frg, 1.0);\n    if (msaa > 1.1)\n    {\n        return Math.min((_aabc9758d4e52fd36dfb1a0e38171798aa7bf2ec665135dc298c1aa1a7c10760_norm_frg) / (num_cores), 100.0);\n    }\n    return Math.min((2.0 * _aabc9758d4e52fd36dfb1a0e38171798aa7bf2ec665135dc298c1aa1a7c10760_norm_frg) / (num_cores), 100.0);\n}\n\n// name: Fragment Quad Processor Utilization\n// description: Fragment quad processor utilization\n// type: Percentage\nfunction FragmentQuadProcessingUtilization()\n{\n    return Math.min((4.0 * _ca0d54323c1777d994357aaacdb7beac572bea11cd16afed4c756f3dc9496a18_norm_frg) / (2.0 * num_cores), 100.0);\n}  \n\n// name: Pre Culling Primitive Block Utilization\n// description: Pre Culling primitive block utilization\n// type: Percentage\nfunction PreCullPrimitiveBlockUtilization()\n{\n    return Math.min(_46210435e8bd691719dc45391f51ef552bf7e745c1401ee9943aa6f85086336e_norm_vtx / (0.5 * num_gps), 100.0);\n}\n\n// name: Pre Culling Primitive Count\n// description: Pre Culling primitive count\n// type: Percentage\nfunction PreCullPrimitiveCount()\n{\n    return _46210435e8bd691719dc45391f51ef552bf7e745c1401ee9943aa6f85086336e_vtx;\n}\n\n// name: Post Clipping Culling Primitive Block Utilization\n// description: Post Clipping Culling primitive block utilization\n// type: Percentage\nfunction PostClipCullPrimitiveBlockUtilization()\n{\n    return Math.min(_2d3c257f33af88b8488658fb5b6a86f64cb02169b680e1250d3f37d373a4197f_norm_vtx / (num_gps), 100.0);\n}\n\n// name: Primitive Tile Intersection Utilization\n// description: Primitive tile intersection utilization\n// type: Percentage\nfunction PrimitiveTileIntersectionUtilization()\n{\n    return Math.min(_149b69750a3c80a27d163a4ca69ec03e3b39b3c0afe9c90c8cd37a128832cb13_norm_vtx / (num_gps), 100.0);\n}\n\n// name: Tiler Utilization\n// description: Tiling block utilization\n// type: Percentage\nfunction TilerUtilization()\n{\n    return Math.min(_da824fe9269c1efd80cb71a6e5415be160b6f43b41e858cb83976c4140b052a5_norm_vtx / (num_gps), 100.0);\n}\n\n// name: GPU to main memory limiter\n// description: GPU to main memory limiter\n// type: Percentage\nfunction MainMemoryTrafficLimiter()\n{\n    return Math.min((_6d6a7c8efb15986fa71f8bf4a6a06f8942199b36680e516766e92490607c958d_norm + _fdc48a2370f6885da6ac169661812057de2cf71fbbbcb5df8348a78f112992dc_norm) / 4.0, 100.0);\n}\n\n\n// name: GPU to main memory bidirectional traffic in bytes\n// description: GPU to main memory bidirectional traffic in bytes\n// type: Value\nfunction MainMemoryTraffic()\n{\n    return 64.0 * _6d6a7c8efb15986fa71f8bf4a6a06f8942199b36680e516766e92490607c958d;\n}\n\n// name: VS Invocation Unit Utilization\n// description: VS invocation unit utilization\n// type: Percentage\nfunction VSInvocationUtilization()\n{\n    return Math.min(_da2d5f5fd43e7edda6d5635752a29f09d285cf47c2ecd0a1b83b1ba3eddcef55_norm_vtx / (0.5 * num_gps), 100.0);\n}\n\n// name: Fragment Z Store Unit Utilization\n// description: Fragment Z store unit utilization\n// type: Percentage\nfunction FragmentZStoreUtilization()\n{\n    return Math.min((_63b721bdb7ff9f45f3835f7e6a8a4595b1fed0038ae9a76cb853fc36756386c9_norm_frg) / num_cores, 100.0);\n}  \n\n// name: Fragment Z Store Unit Bytes Written\n// description: Fragment Z store unit bytes written\n// type: Value\nfunction FragmentZStoreBytes()\n{\n    return _63b721bdb7ff9f45f3835f7e6a8a4595b1fed0038ae9a76cb853fc36756386c9 * 32;\n}  \n\n// name: Compression Ratio of Z Texture Memory Written\n// description: Ratio of compressed to uncomressed depth/stencil texture memory written\n// type: Rate\nfunction CompressionRatioZTextureMemoryWritten()\n{    \n    return FragmentZStoreBytes() / Math.max(ZBytesWrittenToMainMemory(), 1);\n}\n\n// name: Fragment Generator Primitive Processed\n// description: Fragment generator primitive processed\n// type: Value\nfunction FragmentGeneratorPrimitiveProcessed()\n{\n    return _64a10cb112e74a4ec02f177b245e3f83edd61c0f78bc5bc7ae4978ce28f07f83;\n}\n\n// name: Fragment Quads Processed\n// description: Fragment generated quads processed\n// type: Value\nfunction FragmentQuadsProcessed()\n{\n    return 4.0 * _ca0d54323c1777d994357aaacdb7beac572bea11cd16afed4c756f3dc9496a18_frg;\n}    \n\n// name: Pre Culling Primitive Count\n// description: Pre Culling primitive count\n// type: Value\nfunction PreCullPrimitiveCount()\n{\n    return _46210435e8bd691719dc45391f51ef552bf7e745c1401ee9943aa6f85086336e_vtx;\n}\n\n// name: Fragment Bytes Written\n// description: Fragment bytes written\n// type: Value\nfunction FragmentStoreBytes()\n{\n    return 4.0*(_60b74ec0e06a7b2279ca3c1131155a13c4a5b231d1e5d98a55a0990939e88168 + 2.0*_9290d4f55ee82ba67532c0cd99b14ce8e3cc547e714255c25f52f81ad7050ab2 + 4.0*_4e9aebe595eff4fd33ee46fa2962bd3955adb83eb002404513ce342f8cfca446 + 8.0*_893ab5dd2699dd85fb9a6332f8bf65d8ca8b3cfe21c74531833f012637d9694b + 16.0*_afb0184e960da27de79a4a2c74fcee8a7eab380f37462d19d027b357c8005eae);\n}  \n\n// name: Primitive Tile Intersections\n// description: Primitive tile intersections\n// type: Value\nfunction PrimitiveTileIntersections()\n{\n    return _149b69750a3c80a27d163a4ca69ec03e3b39b3c0afe9c90c8cd37a128832cb13_vtx;\n}\n\n// name: Tiles Processed in Tiler\n// description: Tiles processed by tiling block\n// type: Value\nfunction TilerTilesProcessed()\n{\n    return _da824fe9269c1efd80cb71a6e5415be160b6f43b41e858cb83976c4140b052a5_vtx;\n}\n\n// name: Fragment Generator Tiles Processed\n// description: Fragment Generator Tiles Processed\n// type: Value\nfunction FragmentGeneratorTilesProcessed()\n{\n    return _eda5bce70befa39e7c6029505c0269211092c220048a502fd8fa2fe30895465b;\n}\n\n// name: Texture Cache Read Misses\n// description: Texture cache miss count\n// type: Value\nfunction TextureCacheMissCount()\n{\n    return _19109618d2fc2db66c23fe425a0a19ec06c81f05bb676c40aa572b76891428e6;\n}\n\n// name: Depth Stencil Texture Main Memory Bytes Read\n// description: Total bytes read for depth / stencil textures from main memory\n// type: Value\nfunction ZTextureBytesReadFromMainMemory()\n{\n    return 64.0 * (_71b7e9060085fee2d685ddb1202c79855cb96962ceb1328f9b5a993944ef2800 + _4f09bffac0ab5e557c43c129b54a4ea67269654b4cd033eccf3120127543505c);\n}\n\n// name: Fragment Z Unit Bytes Read\n// description: Fragment Z unit bytes read\n// type: Value\nfunction FragmentZLoadBytes()\n{\n    return _40680272e25f5a98ef1fdae57c0be82cc7fb940000907f1a4d46547de8525db0 * 64;\n}  \n\n// name: Fragment Interpolation Instructions\n// description: Fragment interpolation instructions\n// type: Value\nfunction FragmentInterpolationInstructions()\n{\n    return 32 * (_81e94ff007a99cc84c59352583de71dad427a422d70be052cff38c6e018907ee + _95b5e692e6eefd3c235ce8ef2be2b781023c467a45108be8e5bb4beea25dfe6f);\n}  \n\n// name: ALU FP32 Instructions Executed\n// description: ALU FP32 Instructions executed\n// type: Value\nfunction ALUF32()\n{\n    return (_8e70441b8b0d9ded3ed900ec761f9f5960b106c5a304b44d62781621d5d1861a * 16);\n}\n\n// name: ALU FP16 Instructions Executed\n// description: CS ALU FP16 Instructions executed\n// type: Value\nfunction ALUF16()\n{\n    return (_82b2f93079459b00fb869444cfcf44604cc1a91d28078cd6bfd7bb6ea6ba423d * 16);\n}\n\n// name: ALU 32-bit Integer and Conditional Instructions Executed\n// description: ALU Select, Conditional, 32-bit Integer and Boolean Instructions executed\n// type: Value\nfunction ALUInt32AndCond()\n{\n    return (_23c51175314006fa4b6798dcb173a814349e2e5947244cfdba868be736d2bc03 * 16);\n}\n\n// name: ALU Integer and Complex Instructions Executed\n// description: ALU Integer and Complex Instructions executed\n// type: Value\nfunction ALUIntAndComplex()\n{\n    return (_827783963eafa9275a53fc2b3ef13214ab90939fcc81572c4260e2eac9bd2acb * 16);\n}\n\n// name: ALU FP32 Instructions Issued\n// description: ALU FP32 Instructions issued\n// type: Value\nfunction ALUF32Issued()\n{\n    return (_a6e6cc683eebf697b2a31bd7d4f877afee2419f6882f55b2f4ea296c9a368b99 * 128);\n}\n\n// name: ALU FP16 Instructions Issued\n// description: CS ALU FP16 Instructions issued\n// type: Value\nfunction ALUF16Issued()\n{\n    return (_0af59bb3dd0a90f2664cd5e5601b3c56bf91e40478def55647411007dc5394d3 * 128);\n}\n\n// name: ALU 32-bit Integer and Conditional Instructions Issued\n// description: ALU Select, Conditional, 32-bit Integer and Boolean Instructions issued\n// type: Value\nfunction ALUInt32AndCondIssued()\n{\n    return (_4ffbecab1c5697bfb927de016f6ddd4b010ddb0588049be5243c148e62d21409 * 128);\n}\n\n// name: ALU Integer and Complex Instructions Issued\n// description: ALU Integer and Complex Instructions issued\n// type: Value\nfunction ALUIntAndComplexIssued()\n{\n    return (_04ec68f75ab42cefa364623ffb059b101b9d6d35ed0e59abbbc94170b4ec6cbe * 128);\n}\n\n// name: Fragment Generator Primitive Processed Per Tile\n// description: Fragment generator primitive processed per tile\n// type: Rate\nfunction AveragePrimitiveProcessedPerTile()\n{\n    return FragmentGeneratorPrimitiveProcessed() / FragmentGeneratorTilesProcessed();\n}\n\n// name: Opaque Fragment Quads Processed\n// description: Percentage of opaque quads processed out of total quads\n// type: Percentage\nfunction OpaqueFragmentQuadsProcessed()\n{\n    return Math.min(100.0 * 4.0 * _719a713b390f2b37bbbe8ca62f3053819539a3fc60d05b02f21b2c8435fb73a6 / Math.max(FragmentQuadsProcessed(), 1.0), 100.0);\n}\n\n// name: Translucent Fragment Quads Processed\n// description: Percentage of translucent quads processed out of total quads\n// type: Percentage\nfunction TranslucentFragmentQuadsProcessed()\n{\n    return Math.min(100.0 * 4.0 * _fade8eea03e1fbf9a3d3cd6ab6bfd82b70bc1595ffb23f1b638746baa6c672e0 / Math.max(FragmentQuadsProcessed(), 1.0), 100.0);\n}\n\n// name: Feedback Fragment Quads Processed\n// description: Percentage of feedback quads processed out of total quads\n// type: Percentage\nfunction FeedBackFragmentQuadsProcessed()\n{\n    return Math.min(100.0 * 4.0 * (_db1f507c85a72a4148283a69481d823edb23fbfb999acf18fb2d155eb7edc768 + _879d7622b5c9023712d7cc6c70f432757ab72505afba79be4dcb023459f9658a) / Math.max(FragmentQuadsProcessed(), 1.0), 100.0);\n}\n\n// name: Texture Filtering Limiter\n// description: Measures the time during which texture filtering is attempted to execute as a percentage of peak texture filtering performance.\n// type: Percentage\nfunction TextureFilteringLimiter()\n{    \n    return (_d11d0ca656849a8048dbe7d1d6761d3cbcf463d9196a20b3da7e6a554fd0652f_norm + _8e40208f4632cf3bab4b21f7d8df3129241f89d2bfbac698efbd3f75a909833c_norm) / (8.0 * num_cores);\n}\n\n// name: Texture Filtering Utilization\n// description: Texture filtering utilization\n// type: Percentage\nfunction TextureFilteringUtilization()\n{\n    return _d11d0ca656849a8048dbe7d1d6761d3cbcf463d9196a20b3da7e6a554fd0652f_norm / (8.0 * num_cores);    \n}\n\n// name: Texture Cache Utilization\n// description: Texture cache utilization\n// type: Percentage\nfunction TextureCacheUtilization()\n{\n    return Math.min(_e04363b0193aecfc56d5f1c5edb7fc2147625522e4ecdb3a8d24ae32f45eaa5c_norm / num_cores, 100.0);\n}  ', 1: [['GRC_TIMESTAMP', False], ['GRC_GPU_CYCLES', False], ['GRC_ENCODER_ID', False], ['GRC_KICK_TRACE_ID', False], ['GRC_SAMPLE_TYPE', False], ['_7297c7ee63bc3f774b2e5f2e665cd87efcbf40dd3e6b66a9c08f8ebfdae4019e', True], ['_192193e6c7ce23b86614fecbd983be5c3d4ea08d47c42ee19db85a736c0cbf7e', True], ['_c4c7e4c8f7b6488a9a980bba9f849c9e5d8e4bbb1e2c134cef7620b6faf7d6a2', True], ['_aac2d2ece8ff1acbf2ab0f821c8f1e4e2dbb2ca4c3a6918e2dc458dfab8ee05c', True], ['_4bb4a72bfa974f38e0143eef87e93ae69847e8612684f014350fb4a8c0692050', True], ['_7646a8523871192073a29fb3af219f4dbddae3339e969e0da8ef8d84a3d46ec5', True], ['_6b3a9b25a65b692ad1039bcc4c052d5a85e40a9410946c0cdf5dc85d993e2131', True], ['_c9bcd5df6397dc8477a12ddf9358bccbbb3d8e52fc3dadab320be9bbb14fe157', True], ['_d11d0ca656849a8048dbe7d1d6761d3cbcf463d9196a20b3da7e6a554fd0652f', True], ['_367a60a3f4d39b45114c57a560ad1bad4f9f62798346ead3a98f790ad32537a6', True], ['_e7982344eb9c10ce1e1e9e179c01bb8a55934656fd5d499f956d6e35e42f1f10', True], ['_b39850e6fdaf024c59701c0ee69b15fce7e4f6c92aa385e9920569a6f595745f', True], ['_224fc5057da0739817ec8947d2fb1ad3ff63c2ceb3fabe0e34719c0eb465d7e9', True], ['_5c5c55d05fb355aa5be61ac63c88eb4a2a521a47dd8f79c18b5c1df163d5cb55', True], ['_d201fed97c60848e3714502b203a0ad4e2820937c140dbf6a9db1cb31be194dd', True], ['_190175e7010a5c90cc957e3f3eed64c3910111ef228808fbb2462cd269524ef5', True], ['_bb9dbea90df77e54beebae872b35923d727fd2a59d6905410b32092d6d561402', True], ['_63b42fb9d33e39b5f913060438c759d841275b394631cb7a8145853e9a04ef67', True], ['_8e40208f4632cf3bab4b21f7d8df3129241f89d2bfbac698efbd3f75a909833c', True], ['_792173079ffc5aacc2cea817d8812166e71ea17309e294d24ee2cc88d2fb1e8e', False], ['_e5f2d8a6cf9651b49b3b00bebdf815a5269b8c89fc3bc02057a3a14e28733495', True]]},indent=4))
# #
# # import thread_num
# # print( int('8356781',base=16))
#
# # print(str(123123))
# from datetime import datetime
#
# datetime.strptime(timestr, "%Y-%m-%d %H:%M:%S.%f")